Je suis nouveau à conteneurs du CIO et de l'apprentissage Ninject. J'ai utilisé la version 2.0, fraîchement téléchargée de Github.Ninject 2.0 paramètre Constructor - comment définir quand constructeur par défaut est également présent?
Je suis en train de définir un paramètre de chaîne sur un constructeur lorsqu'un constructeur par défaut est également présent. J'ai traversé la source de Ninject mais je ne suis pas suffisamment familier avec les modèles utilisés pour identifier facilement ce qui me manque.
Voici mon application console de test:. « Bonjour tout le monde ».
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);
}
Les impressions de code « message incorrect :(» à la console Si je supprime le constructeur par défaut dans TestClass je reçois Que suis-je manque ici
pour clarifier:. Je veux la classe d'imprimer « Bonjour tout le monde » à la console avec le présent constructeur par défaut
Merci beaucoup Ian! – Stuart
Je viens de commettre un patch plus tôt aujourd'hui qui aurait également pris en charge de cette question sans l'attribut [Injecter]. Les paramètres sont maintenant notés lors de l'évaluation du .ctor à utiliser. –