MvvmCross,如何在另一个程序集中注册Service?

Max*_*mus 2 c# android inversion-of-control mvvmcross xamarin

我在PCL中有一个名为MyProject.Core的“ Core”项目,该项目具有:

     public interface IPhotoService
Run Code Online (Sandbox Code Playgroud)

然后,我创建一个名为MyProject.Core.Android的Android类库项目,并从nuget 添加MvvmCross Core的引用。现在,通过执行此操作,我现在知道我的Android类库没有“ setup.cs”。

MyProject.Core.Android中,我希望该服务(特定于android)如下:

    public class PhotoService : IPhotoService
Run Code Online (Sandbox Code Playgroud)

在我的Android UI项目中,我的Setup.cs包含以下内容:

    public override void Initialize()
    {
        CreatableTypes()
            .EndingWith("Service")
            .AsInterfaces()
            .RegisterAsLazySingleton();
    }
Run Code Online (Sandbox Code Playgroud)

如果我的PhotoService注册存在于没有Setup.cs 的程序集MyProject.Core.Android中,该如何注册?

Stu*_*art 5

https://github.com/MvvmCross/MvvmCross/wiki/Service-Location-and-Inversion-of-Control

当然,您也可以在非Core的程序集上使用相同类型的注册逻辑-例如:

   typeof(Reusable.Helpers.MyHelper).Assembly.CreatableTypes()
       .EndingWith("Helper")
       .AsInterfaces()
       .RegisterAsDynamic();
Run Code Online (Sandbox Code Playgroud)