私はIOCコンテナと学習の新人です。私は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」を取得私は何ここで行方不明
を明確にする:?。私はデフォルトのコンストラクタが存在してコンソールに「!Hello Worldのを」印刷するクラスをしたい
ありがとうIan! – Stuart
今日私は、この問題を[Inject]属性なしで処理していたはずのパッチをコミットしました。使用する.ctorを評価するときにパラメータのスコアが付けられるようになりました。 –