1

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 の一部。

返信をお待ちしております!

4

1 に答える 1