代码之家  ›  专栏  ›  技术社区  ›  Chris Baxter

Xamarin领域没有realmobject链接器剥夺了它们

  •  5
  • Chris Baxter  · 技术社区  · 8 年前

    我在运行时收到如下异常。

    我的解决方案包括一个PCL、Android和IOS项目,每个项目中安装了Visual studio Mac和realm软件包1.6.0。我还检查了Fodyweaver。xml包含正确的引用,所有包的版本都相同。

    然而,我将包含所有领域逻辑的PCL项目移到了一个单独的文件夹中,这样我就可以跨多个解决方案使用它。我的解决方案现在包括这个外部文件夹中的PCL,iOS和Android项目也参考了realm包。应用程序编译得很好,但当我运行应用程序时,它现在在第一次调用use realm时收到此异常。getinstance。

    有人能建议解决这个问题吗?

    3 回复  |  直到 8 年前
        1
  •  2
  •   Chris Baxter    8 年前

    我现在已经解决了这个问题。首先,我应用了@sushhangover的解决方案,但它并没有立即起作用。

        2
  •  2
  •   SushiHangover    8 年前

    这是一样的 问题 RealmObject 当我使用 Viper 架构和我在多个解决方案中共享同一个模型。

    当领域。领域GetInstance(…)称为领域初始化假设 RealmObject公司 s将位于同一程序集中,或者包含的程序集已加载,但在本例中不是。作为一个编译器,你可以看出情况就是这样 在程序集生成中发出警告 (通过 Fody 正在处理)即呼叫 GetInstance 但其中没有任何真实的对象:

    public static class RealmModel
    {
        public static Realms.Realm GetInstance() => GetInstance("");
    
        public static Realms.Realm GetInstance(string databasePath) => GetInstance(new RealmConfiguration(databasePath));
    
        public static Realms.Realm GetInstance(RealmConfigurationBase config = null) => Realms.Realm.GetInstance(config);
    
        public static Task<Realms.Realm> GetInstanceAsync(RealmConfigurationBase config) => Realms.Realm.GetInstanceAsync(config);
    }
    

    Realms.Realm.GetInstance()
    

    但调用模型部件中的一个:

    RealmModel.GetInstance()
    
        3
  •  0
  •   Tom Tom    7 年前

    这就是我的处境。

    • [WPF应用程序,Fody 3.0.3,Realm 3.4.0]

    ...这是我第一次使用领域,感觉真的很糟糕。。。

    1. 需要FodyWeavers。在解决方案文件夹中创建的xml文件,因为Nuget无法 现在就为你做这件事。
    2. (不知何故,我更新了Fody的最新版本,然后将其降级 重新确认该领域不支持任何更新版本的Fody
    3. 答案)

    Xml文件内容:

    <?xml version="1.0" encoding="utf-8" ?>
    <Weavers>
    <RealmWeaver/>
    </Weavers>