모든 Entity 인스턴스의 고유 키를 생성하고 반환하는 엔티티에 대한 추상 클래스가 있습니다. 키 생성은 약간 비싸고 구체적인 엔티티의 속성 값을 기반으로합니다. 이미 키 생성에 참여하는 속성을 KeyMemberAttribute
으로 표시하므로 KeyMemberAttribute
으로 장식 된 속성이 변경 될 때마다 EntityBase.Key
= null로 설정하면됩니다.속성 기반 속성 차단. 방법?
그래서, 내가 지금 같은 기본 클래스있어 : 다음
public abstract class EntityBase : IEntity
{
private string _key;
public string Key {
get {
return _key ?? (_key = GetKey);
}
set {
_key = value;
}
}
private string GetKey { get { /* code that generates the entity key based on values in members with KeyMemberAttribute */ } };
}
을
public class Entity : EntityBase
{
[KeyMember]
public string MyProperty { get; set; }
[KeyMember]
public string AnotherProperty { get; set; }
}
을 다음과 같이 나는이 EntityBase.Key
모든 null
에를 설정 KeyMemberAttribute
을 만들 필요가 구현 구체적인 실체를 가지고 속성 값이 변경되는 시간.
감사합니다. 리플렉션에 약간의 문제가있었습니다. 그러나 당신의 코드 예제로 인해이 접근법을 사용하기 때문에 다른 하나를 찾게되었습니다 : http://doc.postsharp.net/multicast-reflection –