У меня есть общий класс, который представляет собой документ, который может быть в настоящее время только двух типов. Type1 или Type2. Большинство методов и свойств отлично работают для обоих типов, но название отличается. Что мне интересно, если есть лучший способ справиться с этим? Благодаря!!Является ли это хорошим способом обработки уникальных свойств для общего?
[XmlIgnore]
public string DocumentType
{
get
{
return typeof(T).Name;
}
}
[XmlIgnore]
public string DocumentTitle
{
get
{
string retval = string.Empty;
Object obj = Document;
switch (DocumentType)
{
case "Type1":
retval = ((Type1)obj).title.Text;
break;
case "Type2":
retval = ((Type2)obj).Title;
break;
}
return retval;
}
}
Type1 и Type2 были получены с использованием xsd.exe так стесняюсь, чтобы изменить их, хотя, возможно, добавление только для чтения XML игнорируется свойство, чтобы получить титул в обоих Type1 и типа 2, что согласуется?
Если вы сделаете это, и я думаю, что вам нужно, поставьте ограничитель на T вашего общего класса, что не позволит вам проверить, что документ на самом деле является IHasTitle. –
Я бы использовал частичные классы, если сгенерированный код поддерживает его. Изменение сгенерированных файлов кода обычно плохое Juju. – Toby