2017-06-20 62 views
0

,如果我有一个可移植类库与类鸿沟C#类到它的部分

public class Class1 
: EntityBaseClass 
{ 
    public string Property1{get;set;} 
    public string Property2{get;set;} 
} 

和第二类,它包含的类的实例1

public class Class2 
: EntityBaseClass 
{ 
    public string Property1{get;set;} 

    public Class1 Property2{get;set;} 
} 

我怎么能devide类2,以便我可以得到一个字典形式的

Dictionary<Type, object> 

其中'类型'是Class1的类型,'object'是c的实例lass 1?

由于持久性的原因,我不得不将其分解成零件,并且必须分开保存每个实例。

该计划是实施Save<T>(T entity)方法。此方法挑选从特殊基类派生的属性并将其保存到数据存储中。

由于pcl库类型没有.net框架的完整反射子集。

我试图做到反射和序列化没有成功,但很多头疼。属性不起作用。任何提示如何开始?

回答

0

当您想查询类型

foreach (EntityBaseClass item in list) 
{ 
    if (item.GetType() == typeof(Class1)) 
    { 
     Class1 cl1 = (Class1)item; 
     //Your code 
    } 
    else 
    { 
     Class2 cl2 = (Class2)item; 
     //Your code 
    } 
} 

我希望它会帮助你,你可以使用List<EntityBaseClass>代替Dictionary<Type, object>

E.g)

List<EntityBaseClass> list = new List<EntityBaseClass>(); 
Class1 cl1 = new Class1(); 
list.Add(cl1); 
Class2 cl2 = new Class2(); 
list.Add(cl2); 

+0

如果它很容易,但我有一个class2包含一个class1的实例。我需要某种集合中的class1实例和class2实例。 – Tombaman