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.IDictionary
2[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!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sehr interessant finden +1. Scheint ein bug in der Einheit, siehe hier:
http://unity.codeplex.com/Thread/View.aspx?ThreadId=30292
Können Sie auch versuchen, diese:
Macht, dass es mit den default-Konstruktor, so umgehen Sie das Problem...