0
我是Windows Phone 8開發的新手,但之前在項目中使用過Unity。我正在嘗試註冊WP8應用程序中使用的一些實例和類型,但似乎註冊尚未完成。該容器作爲靜態類的靜態屬性保留:未在Windows Phone 8上註冊的Unity容器8
public static class Bootstrapper
{
public static UnityContainer UnityContainer { get; set; }
public static void InitialiseContainer()
{
UnityContainer = new UnityContainer();
UnityContainer.RegisterInstance<IActivity>(new FirstActivity());
UnityContainer.RegisterInstance<IActivity>(new SecondActivity());
UnityContainer.RegisterType<ActionFactory>(new InjectionConstructor(UnityContainer.ResolveAll<IActivity>().ToList()));
}
}
我遇到的問題是沒有註冊正在發生。另外,如果我註釋掉UnityContainer = new UnityContainer()
行,Microsoft.Practices.Unity.WindowsPhone.dll
程序集中會出現異常 - Unity在Windows Phone上的行爲與Windows桌面的行爲有何不同?
什麼異常被拋出? – flq
「IActivity」的第二次註冊會擦除第一個。如果你沒有設置UnityContainer = new UnityContainer();那麼你的UnityContainer實例是null,並且可能會出現異常。據我所知,這兩個事實在桌面版本的Unity中都是真實的。 –
@flq由於Unity容器實例爲null,因此它是'NullReferenceException'。這是一個粗略的測試,我用它來快速找出哪個組件正在被使用! – BWHazel