Nicht beheben können, Wörterbuch in Unity-container

Ich habe gerade stolperte über diese:

innerhalb eines Unity-container, ich möchte mich registrieren IDictionary<TK, TV>; davon ausgehen, dass es IDictionary<string, int>

_unityContainer = new UnityContainer()
    .RegisterType<IDictionary<string, int>, Dictionary<string, int>>();

aber wenn ich versuche

var d = _unityContainer.Resolve<IDictionary<string, int>>();

es nicht zu lösen...

Bekomme ich...

Microsoft.Praktiken.Einheit.ResolutionFailedException: Microsoft.Praktiken.Einheit.ResolutionFailedException: Auflösung der Abhängigkeit fehlgeschlagen, type = "System.Sammlungen.Generisches.IDictionary`2[System.String,System.Int32]", name = "(none)".
Ausnahme ist aufgetreten während: während der Lösung.

Ausnahme: InvalidOperationException - Der Typ Dictionary`2 hat mehrere Konstruktoren der Länge 2. Nicht zu eindeutig machen.


In der Zeit der Ausnahme, wurde der container:

Resolving-System.Sammlungen.Generisches.Wörterbuch2[System.String,System.Int32],(none) (mapped from System.Collections.Generic.IDictionary2[System.String,System.Int32], (none))
---> System.InvalidOperationException: Der Typ Dictionary`2 hat mehrere Konstruktoren der Länge 2. Nicht eindeutig machen..

So wie es aussieht hat er die Art zu beheben (wobei Dictionary<string, int>) aber nicht um neue es...

Kommen, wie die Einheit nicht lösen kann diese Art? Wenn ich Typ

IDictionary<string, int> d = new Dictionary<string, int>()

funktioniert...

irgendwelche Ideen?

Dank!

InformationsquelleAutor kiwipom | 2010-04-29
Schreibe einen Kommentar