Например, у меня есть класс для сериализации
[Serializable]
class Person
{
[XmlAttribute("name")]
string Name {get;set;}
}
Я должен сделать атрибут Имени требуемым. Как сделать это в.NET?
Во-первых, [Serializable]
не используется XML Serializer.
Во-вторых, нет способа сделать его обязательным.
Я считаю, что вы путаете XML с XSD. Если вы хотите, чтобы ваше свойство всегда имело значение, инициализируйте это свойство в конструкторе и генерируйте исключение, если кто-то попытается установить его как пустое или нулевое.
class Person
{
private string _Name = "Not Initialized";
[XmlAttribute("name")]
string Name {
get { return _Name;}
set {
if(value == null || value==string.Empty) throw new ArgumentException(...);
_Name = value;
}
}
}