我试图弄清楚是否可以使用< replacement-method>和一个在spring.Net中实现IMethodReplacer的对象在C#中换出一个getter?在这种情况下,我必须走这条路线,因为注入的属性是一个计算值 - 我是否必须将getter变为实际方法?
这是我正在尝试做的一个框架:
public class SecureHeader
{
public string Token { get; set; }
}
public class Generator
{
public SecureHeader GenerateSecureHeader(object[] args) { return new SecureHeader(); }
}
public class InstantiatedByIOC
{
public virtual SecureHeader Header
{
get
{
return new SecureHeader
{
Token = "Hard Coded"
};
}
}
}
public class SecureHeaderReplacer : IMethodReplacer
{
public Generator Generator { get; set; }
public object Implement(object target, MethodInfo method, object[] args)
{
return Generator.GenerateSecureHeader(null);
}
}
我将如何进行布线(我一直得到一个无效的方法覆盖:D)?
以下不起作用:
<object id="replacer" type="SecureHeaderReplacer">
<property name="Generator" ref="CreatedElsewhere"/>
</object>
<object id="entityToInject type="InstantiatedByIOC">
<replaced-method name="Header replacer="replacer">
<arg-type match="SecureHeader" />
</replaced-method>
</object>
任何
答案 0 :(得分:1)
....在通过反射器查看代码之后,事实证明我可以使用类似的东西:
<object id="entityToInject" type="InstantiatedByIOC">
<replaced-method name="get_Header" replacer="replacer"/>
</object>