【发布时间】:2016-05-06 20:52:33
【问题描述】:
我是国际奥委会的新手。
我有 MethodProfilerAspectAttribute 属性,该属性必须应用于像这样的任何方法
[MethodProfilerAspectAttribute(5)]
public void MethodName(){}
这里是MethodProfilerAspectAttribute的实现
[Serializable]
[AttributeUsage(AttributeTargets.Method, AllowMultiple = false)]
public sealed class MethodProfilerAspectAttribute : OnMethodBoundaryAspect
{
public ILogger logger { get; set; }
public int x{get;set;}
public MethodProfilerAspectAttribute(int x)
{
this.x=x;
}
public override void OnSuccess(MethodExecutionArgs args)
{
logger.CustomLogging("logMe");
base.OnSuccess(args);
}
}
我想使用已注册的 Log4NetLogger 解决我的 ILogger 依赖关系,并使用以下方法正确解析构造函数依赖关系:
container.Register(Component.For<ILogger>().ImplementedBy(typeof(Log4NetLogger)));
但不幸的是,我为解决属性依赖所做的任何尝试都不起作用。
任何帮助将不胜感激。
【问题讨论】:
-
@qujck,不,不是。首先,我期待它的解决方案是针对温莎城堡而不是 Unity,其次是我见过的水法,是行不通的。我只期待 Castle Windsor (C#) 的代码。
-
此外,该链接不能解决我的问题
-
我同意该链接不能解决您的问题;它解释了为什么不能在运行时构造属性时将依赖项注入到属性中。
-
不,我可以在互联网上看到这是可能的,我同意这是一种不好的做法,但我没有其他出路。我需要为我的属性解决这个问题,否则我无法继续
标签: c#-4.0 dependency-injection inversion-of-control castle-windsor