在相同结构但不同类型的对象之间传输数据

时间:2017-07-17 14:54:46

标签: c#

我有两个派生类。

public Class A : BaseClass
{
    public static somecomplextype Criteria { get; set; }
}

public Class B : BaseClass
{
    public static somecomplextype Criteria { get; set; }
}

我只能访问派生类而不是基类。

现在我有另一个班级

public Class SomeClass
{
   public SomeClass()
   {
       //I need a logic for the below to happen...
       B.Criteria = (B) A.Criteria //throws invalid cast exception
   }
}

问题是将A.Criteria之间的数据传输到B.Criteria ......

因为演员抛出异常..

我想知道是否还有其他办法。

1 个答案:

答案 0 :(得分:0)

我指定的问题相当简单。我只是想将数据从一个派生类型对象传输到另一个相同基类的派生类型对象,因为我无法访问基类。

由于对象很大,我需要为它们之间的数据传输编写一个长数据传输逻辑。

所以我一直在寻找像演员一样的简单解决方案(在我的情况下不起作用)。

我找到了一种在它们之间传输数据的迂回方式。在这里粘贴代码FWIW

如果A.CriteriaB.Criteria是对象,我希望将A的数据传递给B.完成上述所有建议。我想出了一个回合路。

string json = JsonConvert.SerializeObject(A.Criteria);
return JsonConvert.DeserializeObject(json, typeof(B.Criteria)) as B.Criteria;