私はC#アプリケーションでログ機能を実装するのにNinject.Extensions.Interception
(より具体的にはInterceptAttribute
)とNinject.Extensions.Interception.Linfu
プロキシを使用していますが、プロキシクラスいくつかのインターフェイス。Ninject.Extensions.Interception.Linfuで複数のインターフェイスを公開するプロキシ
私は、インターフェイスを実装し、抽象クラスから継承するクラスを持っています。
public class MyClass : AbstractClass, IMyClass {
public string SomeProperty { get; set; }
}
public class LoggableAttribute : InterceptAttribute { ... }
public interface IMyClass {
public string SomeProperty { get; set; }
}
public abstract class AbstractClass {
[Loggable]
public virtual void SomeMethod(){ ... }
}
私はのServiceLocatorからのMyClassのインスタンスを取得しようとすると、のLoggable属性は、プロキシを返すようになります。
var proxy = _serviceLocator.GetInstance<IMyClass>();
問題は、プロキシのみのsomeMethod()を露出AbstractClassインターフェースを認識戻されます。結局のところ、SomePropertyにアクセスしようとすると、ArgumentException
が届きます。
//ArgumentException
proxy.SomeProperty = "Hi";
この場合、mixinやその他の技術を使用して複数のインターフェイスを公開するプロキシを作成する方法はありますか?
パウロ