你好,我有这个课:
class A{
public string P1{get; set;}
public string P2{get; set;}
...
public string PX{get; set;}
}
此类在DLL中,并且我不需要更改它。但是我想添加一些属性,所以我创建了B类:
class B : A{
public bool IsSelected{get;}
}
可以,但是现在我想将B类转换为A类(没有IsSelected
属性):
B b = new B();
A a = (A)b;
变量a
具有IsSelected
。是方法吗?还是如何更好地设计此模型?
答案 0 :(得分:1)
正在使用WCF发送对象A,并且包含IsSelected属性时,将无法发送该对象。在应用程序中,我需要A + IsSelected,但是当我需要发送它时,A必须没有IsSelected
您可以通过应用IgnoreDataMember
属性告诉WCF序列化程序忽略该字段:
class B : A{
[IgnoreDataMember]
public bool IsSelected{get;}
}
答案 1 :(得分:1)
一种可能的解决方案是确定不是B是-A而是B具有-A:
class B
{
public A A { get; }
public bool IsSelected{get;}
}