Чтобы добавить к тому, что упомянул @bhamlin, на шаге 2 мне также пришлось внести следующие изменения в AssemblyInfo.cs для генерации родинок:
Изменение
[assembly: AllowPartiallyTrustedCallers]
до
[assembly: AllowPartiallyTrustedCallers(PartialTrustVisibilityLevel = PartialTrustVisibilityLevel.NotVisibleByDefault)]
, как это определено в System.ComponentModel.DataAnnotations.dll
Производные типы должны либо соответствовать доступности безопасности базового типа, либо быть менее доступными
Базовый класс для CompareAttribute , который равен ValidationAttribute , находится в этой сборке.