Как использовать DryIoc для инжектора конструктора в Windows Phone 8 PhoneApplicationPage?

Я попробовал конструктор инъекций таким образом:

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 Конструктор Я могу разрешить службу успешно с помощью контейнера напрямую, но я хочу использовать конструктор инъекций.

Я не нашел конкретного примера для этого. Кто-нибудь есть идеи, как это работает?

0 ответов

Другие вопросы по тегам