У меня есть эта часть кода:
var hasAttribute = TypeDescriptor.GetAttributes(property.DeclaringType).OfType<CrmTypeAttribute>()
.Any((attr)
=> ((CrmTypeAttribute)attr).Name == property.Name);
if (!hasAttribute)
{
var crmTypeAttribute = new CrmTypeAttribute(property.Name, crmType);
TypeDescriptor.AddAttributes(property.DeclaringType, crmTypeAttribute);
}
У него есть две проблемы:
- По какой-то причине OfType возвращает пустой IEnumerable, хотя он должен возвращать правильные атрибуты этоготипа, и я проверил.Они существуют.
- Это серьезная проблема.Вместо добавления атрибута он заменяет старый атрибут того же типа на crmTypeAttribute. Я пометил AllowMultiple как true.
Может кто-нибудь сказать мне, что не так с этим кодом?
EDIT:
По какой-то причине он позволяет добавлять только один атрибуттипа атрибута, я добавил другой тип атрибута во время выполнения, и он работал.