Я написал LocationInterceptionAspect, используя PostSharp. Он должен работать в приложении MVC5 с EF6, когда вызывается установщик или получатель класса модели EF. Аспект вызывается правильно, когда я добавляю аннотацию к автоматически сгенерированному классу модели. Поскольку это недопустимый вариант, я попытался добавить аннотацию к соответствующему классу метаданных.
Это работает:
public partial class Company
{
[Encrypt]
public string name{ get; set; }
}
Это не работает:
[MetadataType(typeof(CompanyMetadata))]
public partial class Company
{
}
internal sealed class CompanyMetadata
{
[Encrypt] // does not work
[Requiered] // works
public string name{ get; set; }
}
Если я добавлю другие аннотации в качестве аннотации [Required], функциональность этой аннотации будет выполнена. Я пробовал размещать аннотацию [Encrypt] в других местах - всегда работает. Только в классе метаданных у меня проблема, что аспект не вызывается.
У кого-то есть идея? Спасибо за помощь!