Ich kann nicht herausfinden, wie Sie den Standardkonstruktor (wenn es Überladungen gibt) für einen Typ in StructureMap (Version 2.5) nach Code definieren.Wie definiert man einen Standardkonstruktor nach Code mit Hilfe von StructureMap?
Ich möchte eine Instanz eines Dienstes abrufen, und der Container muss eine Linq2Sql-Datenkontextinstanz in ihn einfügen.
schrieb ich in meinem 'Bootstrap' Methode:
ForRequestedType<MyDataContext>().TheDefault.Is.OfConcreteType<MyDataContext>();
Wenn ich meine app laufen, ich diesen Fehler habe:
StructureMap Ausnahmecode: 202
keine Standardinstanz definiert für PluginFamily MyNamespace.Data.SqlRepository.MyDataContext, MyNamespace.Data, Version = 1.0.0.0, Kultur = neutral, PublicKeyToken = null
Wenn ich alle Linq2Sql-generierten Konstruktoren, die ich nicht brauche, auskommentiere, funktioniert es gut.
Update: Oh, und ich vergaß zu sagen, dass ich das Attribut [StructureMap.DefaultConstructor]
nicht verwenden würde.
Vielen Dank, es hat auch hier funktioniert :-D! –
Aktualisierte SM 2.6 Syntax: Für(). Verwenden Sie (() => new MyDataContext()); –
mxmissile
In SM 2.6.2 wird angezeigt, dass Use keine Konstruktorargumente enthält. –