Атрибуты проверки - PullRequest
       24

Атрибуты проверки

0 голосов
/ 10 февраля 2011

У меня есть абстрактный класс, который наследует свойство от некоторого интерфейса.Поэтому невозможно проверить поле поддержки свойства.Так есть ли у вас какие-либо идеи о том, как реализовать пользовательские атрибуты для проверки свойств?

У вас есть абстрактный класс Collaborator,

public abstract class Collaborator
{
}

Затем вы наследуете его от некоторых интерфейсов:

interface IPersonInformation
{
    String FirstName { get; set; }
    String LastName { get; set; }
}
interface IRecruitmentInformation
{
    DateTime RecruitmentDate { get; set; }
}
///
public abstract class Collaborator : IPersonInformation, IRecruitmentInformation
{
    public String FirstName { get; set; }
    public String LastName { get; set; }
    public DateTime RecruitmentDate { get; set; } 
}

Таким образом, вы не можете проверить свойства в классе Collaborator, используя их вспомогательное поле - они автоматические.Так есть ли способ использовать атрибуты в свойствах для проверки имени?

1 Ответ

0 голосов
/ 10 февраля 2011
public abstract class Collaborator : IPersonInformation, IRecruitmentInformation
{
    private string firstName;
    public String FirstName
    { 
        get { return firstName; }
        set 
        {

            //validation code

            this.firstName = value;
        }
    }
    public String LastName { get; set; }
    public DateTime RecruitmentDate { get; set; } 
}

Должен нормально работать как способ реализации ваших интерфейсов. Я не могу придумать лучшего способа достижения этого с помощью атрибутов.

...