代碼取自from。 Unity應解析Account
類型的所有命名註冊並將它們放入通用數組中。但由於某種原因Account
依賴關係未解析,因此注入的通用數組爲空。爲什麼數組不填充?注入的通用數組不包含任何組件
container.RegisterType<Account>("first");
container.RegisterInstance<Account>("second", new Account());
container.RegisterType(
typeof(MyClass<>),
new InjectionConstructor(
new GenericResolvedArrayParameter("T")));
var myClass = container.Resolve<MyClass<Account>>();
Console.WriteLine(myClass.InjectedValue.Length); // 0
public class Account
{ }
public class MyClass<T>
{
public T[] injectedValue;
public MyClass(T[] injectedValue)
{
this.InjectedValue = injectedValue;
}
public T[] InjectedValue
{
get { return this.injectedValue; }
set { this.injectedValue = value; }
}
}
感謝
避免「乞求bug」,特別是在標題中。 – user2864740
爲什麼會/應該數組有*任何*大小,少得多*任何*非空值?也就是說,上面的規則會讓Unity知道*注入數組的內容是什麼? – user2864740
@ user2864740:如果Account []類型的數組是非通用的,那麼Unity將爲每個註冊的Account類型創建一個實例並將它們注入到該數組中。根據我包含的鏈接,當數組是通用的 – bckpwrld