Ich habe eine einfache SM Registry, in der ich alle meine Instanzen von IDynamicValue konfiguriere. Ich habe einige Konstruktorargumente, die nicht-primative Typen sind (in meinem Fall eine DateTime und ein Prädikat von T). Gibt es eine Möglichkeit, die ich injizieren kann, ohne sie in eine Klasse mit einer Schnittstelle zu wickeln (so können sie automatisch verkabelt werden). Der folgende Codeausschnitt zeigt, was würde ich erreichen möchte:Nicht primative Typen injizieren, ohne sie in eine Struktur in StructureMap einzubinden
ForRequestedType<IDynamicValue>().AddInstances(x =>
{
x.OfConcreteType<DateTimeGenerator>().WithName("DateTime")
.WithCtorArg("keyName").EqualTo("DateTime")
.WithCtorArg("startDate").EqualTo(DateTime.Now.AddMonths(-1))
.WithCtorArg("minuteIntervalDelta").EqualTo(60);
});
Dieses Beispiel läuft, aber nicht mit der Ausnahme:
StructureMap Ausnahmecode: 202 Nein für PluginFamily System.DateTime definiert Standardinstanz
Danke, Nic
EDIT:
Freddy Rios Lösung funktionierte perfekt für das, was ich brauchte. Ich bin immer noch neugierig, ob es eine Methode gibt, dies zu tun, wenn ich einige Konstruktorargumente automatisch verdrahte (daher konnte ich ConstructedBy() nicht verwenden)
... nur das gleiche Problem. – ozczecho