코드는 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; }
}
}
감사
"구걸 버그"특히 제목에서. – user2864740
왜 배열이 * any * 크기이고, 더 적은 * 모든 * 비 * null 값을 가질 수 있습니까? 즉, 위의 규칙에 따라 유니티에 어레이에 주입 할 내용을 알릴 수 있습니까? – user2864740
@ user2864740 : Account [] 유형의 배열이 제네릭이 아닌 경우 Unity는 등록 된 각 계정 유형에 대한 인스턴스를 만들어 해당 배열에 삽입합니다. 포함 된 링크에 따르면 배열이 일반 일 때 같은 일이 발생합니다 – bckpwrld