좀 더 세련된 해결책이 있는지는 모르겠지만 작동하는 것은 있습니다. 올바른 주입 매개 변수를 사용하여 컨테이너에 의존성을 수동으로 추가해야합니다.
플랫폼 특정 프로젝트에서
(이 경우 아이폰 OS,하지만 너무, 안드로이드에 대한 보유)
this.LoadApplication(new App());
을 감안할 때
var app = new App();
this.LoadApplication();
에 다음 줄을 변경하려면 App
당신은 PrismApplication
수있다 이제 IUnityContainer
에 액세스하여 수동으로 유형을 등록하십시오.
var app = new App();
app.Container.RegisterType(typeof(IServiceService),
typeof(MyServiceService),
string.Empty,
new ContainerControlledLifetimeManager(),
new InjectionConstructor(new ResolvedParameter(typeof(IEventAggregator))));
this.LoadApplication(app);
이제 Unity가 MyServiceService
을 올바르게 해결할 수 있어야하며 앱이 더 이상 충돌하지 않아야합니다. 어쨌든 제거해야 할 수도 있습니다.
[assembly: Xamarin.Forms.Dependency(typeof(MyServiceService)]
그러나 제거하지 않으면 충돌하지 않았습니다.
* "응용 프로그램이 충돌"* 적절한 오류 설명하지 않습니다를 게시하는 데 사용할 수 있습니다. 어떤 예외로 인해 앱이 다운 되나요? 또한 코드를 알지 못하면서도 도움이되지 않습니다. * 관련 * 코드를 추가하십시오 - 또는 더 나은 - a [mcve]. –
눈에 보이는 오류는 없습니다. 장치 (iPhone 6)는 메시지없이 응용 프로그램을 중지합니다. 코드는 간단합니다. public My ServiceService (IEventAggregator ea) { _ea = ea; }' – Dimitris
디버깅을 시도 했습니까? 'try'-'catch '블록을 추가 했습니까? (나는 매우 원유이지만, 디바이스의 디버깅은 때로는 로컬 애플리케이션을 디버깅하는 것만큼이나 편안하지 않다. 디버거가 적절한 예외를 보여주지 않았을 때 가끔 도움이되었다.) –