我以这种方式尝试了构造函数注入:
public partial class MainPage : PhoneApplicationPage
{
private readonly ISomeService service;
public MainPage(ISomeService service)
{
InitializeComponent();
this.service = service;
}
}
在App.xaml.cs
构造函数中:
public App()
{
// Global handler for uncaught exceptions.
UnhandledException += Application_UnhandledException;
DependencyService.Initialize(GetAssemblyFilePathCollection());
DependencyService
.Container
.Register(typeof(MainPage), made: Made.Of(() => new MainPage(Arg.Of<ISomeService>())));
// The remaining part is omitted.
}
DependencyService
是我的自定义静态类,它创建Container
并加载所有程序集的绑定。
在这种情况下App.RootFrame_NavigationFailed(object sender, NavigationFailedEventArgs e)
,方法总是被执行:
e.Exception
是一个System.MissingMethodException
与消息No parameterless constructor defined for this object.
e.Uri
/MainPage.xaml
在WMAppManifest.xml
文件中声明为NavigationPage
.
在MainPage
构造函数内部,我可以直接使用容器成功解析服务,但我想使用构造函数注入。
我还没有找到任何具体的例子。有人知道它是如何工作的吗?