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

在db4o中打开具有重命名名称空间/程序集的对象

  •  2
  • Chris S  · 技术社区  · 16 年前

    1 回复  |  直到 15 年前
        1
  •  5
  •   Chris S    16 年前

    wiki documentation .

    这是临时的做法:

    TypeAlias alias = new TypeAlias("OldNameSpace.OldTypeName, OldAssembly", "NewNameSpace.NewTypeName, NewAssembly");
    Db4oFactory.Configure().AddAlias(alias);
    IObjectContainer db = Db4oFactory.OpenFile(dbfilename);
    

    using (IObjectContainer db = Db4oFactory.OpenFile(dbfilename))
    {
        var n = db.Ext().StoredClasses();
        foreach (var x in n)
        {
            System.Diagnostics.Debug.WriteLine(x.GetName());
        }
        var c1 = db.Ext().StoredClass("OldNameSpace.OldType, OldAssembly");//
        if (c1 != null)
            c1.Rename("NewNameSpace.OldType, NewAssembly");
    
        var c2 = db.Ext().StoredClass("System.Collections.Generic.List`1[[OldNameSpace.OldType, OldAssembly]], mscorlib");
        if (c2 != null)
            c2.Rename("System.Collections.Generic.List`1[[NewNameSpace.OldType, NewAssembly]], mscorlib");
    }