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 の 1 つでプロパティ変更イベントが発生したときに、そのコレクションを更新して、この特定の DTO がダーティであることを示すことができることに気付きましたが、この情報を純粋な構文上の容易さのためのプロキシされた DTO の一部。
返信をお待ちしております!