나는 Castle.DynamicProxy2를 사용하고 내가 같은 내 프록시를 인스턴스화하고 있습니다 :Castle.DynamicProxy2와 추가 속성은
private static T GenerateProxy()
{
ArrayList addtlInterfaces = new ArrayList();
addtlInterfaces.Add(typeof (INotifyPropertyChanged));
addtlInterfaces.Add(typeof (EntityStatus));
object entityProxy = ProxyGenerator.CreateClassProxy(typeof(T),
addtlInterfaces.ToArray(typeof(Type)) as Type[],
ProxyGenerationOptions.Default,
new IInterceptor[] { new LazyInterceptor() });
return (T)entityProxy;
}
IEntityStatus 내 인터페이스를 보이는 등과 같습니다 :
public interface IEntityStatus
{
bool IsDirty
{ get; set;}
}
DTO에 속성이 변경되면 이벤트가 DTO를 더티로 설정할 수 있도록 런타임 중에 해당 속성을 사용할 수 있어야합니다. 그러나 인터페이스이고 명시 적 구현이 없기 때문에이 작업을 수행하는 방법이 손실되었습니다. get 및 set 메서드에 대한 대리자를 만드는 것은 피하고 싶은 옵션입니다. 그래서 내가 성취하고자하는 것을 성취 할 수있는 다른 방법이 있습니까?
나는 내 모든 활성 DTO의 컬렉션을 설정할 수 있다는 것을 알았고이 속성이 DTO 중 하나에서 이벤트 실행을 변경하면이 특정 DTO가 더티라는 것을 보여주기 위해 해당 컬렉션을 업데이트 할 수 있었지만 정말 정보는 순수한 구문 용이성을 위해 프록시 된 DTO의 일부가 될 수 있습니다.
답변을 기다리십시오!