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

本文关键字:程序集 集中 注册 Service 程序 另一个 MvvvmCross | 更新日期: 2023-09-27 18:00:51

我在PCL中有一个"Core"项目,名为MyProject.Core,它有:

     public interface IPhotoService

然后,我创建了一个Android类库项目,名为MyProject.Core.Android,并从nuget中添加对MvvvmCross-Core的引用。现在通过这样做,我知道我的Android类库没有"setup.cs">

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

    public class PhotoService : IPhotoService

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

    public override void Initialize()
    {
        CreatableTypes()
            .EndingWith("Service")
            .AsInterfaces()
            .RegisterAsLazySingleton();
    }

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

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

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

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

   typeof(Reusable.Helpers.MyHelper).Assembly.CreatableTypes()
       .EndingWith("Helper")
       .AsInterfaces()
       .RegisterAsDynamic();