castle 构造器的参数假如是一个对象怎么注入呢

.Net技术 码拜 8年前 (2017-05-07) 1302次浏览
例如,有这么一个类:
public class TextFileLog:ILog
{
private string target;
private ILogFormatter format;
public TextFileLog(string target, ILogFormatter format)
{
this.target = target;
this.format = format;
}
public string Write(string MsgStr)
{
return “output:” + format.Format(MsgStr + “-” + target);
}
}
现在需要通过xml注入:
<component id=”txtLog” type=”TestWindsor1.Entity.TextFileLog,TestWindsor1″ service=”TestWindsor1.Interface.ILog,TestWindsor1″>
<parameters>
<target>c:\log2018.txt</target>
<format>
<parameters>
<target>DayOne</target>
</parameters>
</format>
</parameters>
</component>
Castle.Core.Resource.ConfigResource source = new Castle.Core.Resource.ConfigResource();
XmlInterpreter interpreter = new XmlInterpreter(source);
WindsorContainer windsor = new WindsorContainer(interpreter);
IKernel kernel = windsor.Kernel;
ILog log = kernel.Resolve<ILog>(“txtLog”);
Response.Write(log.Write(“hello world”));
运行时报错:Could not convert parameter “format” to type “ILogFormatter”.
解决方案

40

castle 构造器的参数假如是一个对象怎么注入呢一个接口,你让本人拿什么创建?

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明castle 构造器的参数假如是一个对象怎么注入呢
喜欢 (0)
[1034331897@qq.com]
分享 (0)