我是IOC的新手。
我有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依赖关系,Log4NetLogger通过使用以下命令正确注册并解析构造函数依赖关系:
container.Register(Component.For<ILogger>().ImplementedBy(typeof(Log4NetLogger)));
但不幸的是,无论我为解决属性依赖而尝试过什么,都无法正常工作。
非常感谢任何帮助。
答案 0 :(得分:0)
您提供的链接仅描述了从容器中解析的组件的属性注入。属性不是从容器中解析的,而是由CLR创建的。您可以通过提供自定义IContributeComponentModelConstruction
实现来设置一种设置属性属性的方法,但我不太确定。查看类似问题的答案here,here和here(来自温莎的创作者)。
在任何情况下,属性都不是您想要放置功能的地方。它们应该是最小的,只是提供元数据。我在这里看到你试图在所有方法调用中提供某种功能。您可能需要考虑温莎的interceptors来提供类似的行为。