2016-07-29 13 views
0

dllに実装されたプロパティを持つクラスがあります(私は巨大なソースコードがないので実装を変更できません)。プロパティNameを継承したクラスに置き換えることはできません。なぜなら、プロジェクトには何千行ものコードが使用されていたからです(Ctrl + hは役に立ちません)。誰かが私の問題は、キャッスルとユニティの間の動的不動産の傍受によって解決できると言いました。しかし、私は実行可能な小さな例を見つけることができません。あなたはそれを実装する方法を示すことができますか?私はキャッスルダイナミックプロキシは仮想メソッドだけを傍受することを読んでいます。インターフェイスで非仮想メソッドをインターセプトすることは可能ですか?動的プロパティの傍受

namespace DynamicInterception 
{ 
    // Placed int first dll 
    public class Cargo 
    { 
     public string Name { get; set; } 
    } 

    //Placed in second dll 
    public class Wagon 
    { 
     public Cargo Cargo { get; set; } 
    } 

    class Program 
    { 
     static void Main(string[] args) 
     { 
      Wagon wagon = new Wagon(); 
      wagon.Cargo = new Cargo() { Name = "Test" }; 
     } 
    } 
} 
+0

新しい{prop1 = "value"、prop2 = "value2"}のように作成できると思います。 –

答えて

0

はい、Castle Dynamic Proxyでは、メンバーがインターフェイスの一部である場合、クラスの非仮想メンバーを代行受信できます。 documentation(具体的にはIInterceptorのセクション)を見てください。問題がある場合は、問題のあるサンプルコードで新しい質問を始めてください。