Здравствуйте, Блудов Павел, Вы писали:
БП>Этот момент (и следующий) нужно обобщить. Можно реализовать что-то вроде
БП>БП>[BLToolkitExtensionAttribute(typeof(DataContractAttribute))]]
БП>public abstract class Principal
БП>{
БП> public abstract long ID { get; set;}
БП> public abstract string Name { get; set; }
БП> public abstract bool IsGroup { get; set; }
БП> [BLToolkitExtensionAttribute(typeof(SomeOtherAttribute), arg1, arg2)]]
БП> public abstract bool Disabled { get; set; }
БП>}
БП>
БП>т.е. научить AbstractClassBuilder добавлять какие-то аттрибуты прямо в генерируемые методы и свойства.
Только BLToolkitExtensionAttribute нужен еще один параметр — Target. Куда ставить этот атрибут — к полю или к свойству или классу. Так как, например атрибут DataMember надо учтановить не у свойства а у поля, генерируемого Framework'ом.
БП>Это можно (и нужно) сделать проще:
БП>БП>public BLToolkitKnownTypeAttribute(Type type)
БП>{
БП> knownType = TypeAccessor.GetAccessor(type).Type;
БП>}
БП>
Спасибо поравил