15
我是新来的国际奥委会容器和学习Ninject。我已经使用从Github刚刚下载的2.0版本。Ninject 2.0构造函数参数 - 如何设置当默认构造函数也存在?
我想在默认构造函数也存在时在构造函数上设置字符串参数。我一直在浏览Ninject源代码,但我对用于轻松查明缺失的模式不熟悉。
这里是我的测试控制台应用程序:“您好!世界”。
static void Main(string[] args)
{
IKernel kernel = new StandardKernel();
kernel.Bind<ITestClass>().To<TestClass>()
.WithConstructorArgument("message", "Hello World!");
var testClass = kernel.Get<ITestClass>();
// Does not work either:
//var testClass = kernel.Get<ITestClass>(new ConstructorArgument("message", "Hello World!"));
testClass.DisplayMessage();
Console.ReadLine();
}
}
public interface ITestClass
{
void DisplayMessage();
}
public class TestClass : ITestClass
{
public TestClass()
{
this.message = "Wrong message :(";
}
private string message;
public TestClass(string message)
{
this.message = message;
}
public void DisplayMessage()
{
Console.WriteLine(this.message);
}
代码打印出“错误消息:(”到控制台如果我删除在TestClass中默认的构造函数,我得到我是什么在这里失踪
为了澄清:我希望类打印!“Hello World”的与本默认构造函数控制台
非常感谢伊恩! – Stuart 2009-10-04 19:43:36
我刚刚在今天早些时候提交了一个补丁,该补丁应该在没有[Inject]属性的情况下处理此问题。评估使用哪个.ctor时,现在评分参数。 – 2009-10-05 22:27:25