草庐IT

派生词

全部标签

c# - 为每个派生类避免 KnownType 属性的普遍接受的方法

是否有一种普遍接受的方法来避免必须在WCF服务上使用KnownType属性?我一直在做一些研究,看起来有两种选择:DatacontractresolverNetDataContractSerializer我不太喜欢每次添加新类型时都必须静态添加KnownType属性,因此希望避免这种情况。是否应该使用第三个选项?如果是这样,它是什么?如果不是,以上两个选项中哪一个是正确的方法?编辑-使用方法第三种选择是使用反射[DataContract][KnownType("DerivedTypes")]publicabstractclassFooBase{privatestaticType[]De

c# - 使用自动映射器将一个源类映射到多个派生类

假设我有一个源类:publicclassSource{//SeveralpropertiesthatcanbemappedtoDerivedBaseanditssubclasses}还有一些目标类:publicclassDestinationBase{//Severalproperties}publicclassDestinationDerived1:DestinationBase{//Severalproperties}publicclassDestinationDerived2:DestinationBase{//Severalproperties}然后我希望派生目标类继承基类的a

c# - 使用自动映射器将一个源类映射到多个派生类

假设我有一个源类:publicclassSource{//SeveralpropertiesthatcanbemappedtoDerivedBaseanditssubclasses}还有一些目标类:publicclassDestinationBase{//Severalproperties}publicclassDestinationDerived1:DestinationBase{//Severalproperties}publicclassDestinationDerived2:DestinationBase{//Severalproperties}然后我希望派生目标类继承基类的a

c# - 将派生类的列表<>转换为基类的列表<>

我有两个类:一个基类(Animal)和一个派生自它(Cat)。基类包含一个以List作为输入参数的虚方法Play。像这样usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespaceConsoleApplication9{classAnimal{publicvirtualvoidPlay(Listanimal){}}classCat:Animal{publicoverridevoidPlay(Listanimal){}}classProgram{staticvoidMain(

c# - 将派生类的列表<>转换为基类的列表<>

我有两个类:一个基类(Animal)和一个派生自它(Cat)。基类包含一个以List作为输入参数的虚方法Play。像这样usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespaceConsoleApplication9{classAnimal{publicvirtualvoidPlay(Listanimal){}}classCat:Animal{publicoverridevoidPlay(Listanimal){}}classProgram{staticvoidMain(

c# - 使用 JSON.net,在基类上下文中使用时,如何防止序列化派生类的属性?

给定一个数据模型:[DataContract]publicclassParent{[DataMember]publicIEnumerableChildren{get;set;}}[DataContract]publicclassChildId{[DataMember]publicstringId{get;set;}}[DataContract]publicclassChildDetail:ChildId{[DataMember]publicstringName{get;set;}}出于实现方便的原因,有时Parent上的ChildId对象实际上是ChildDetail对象。当我使用JS

c# - 使用 JSON.net,在基类上下文中使用时,如何防止序列化派生类的属性?

给定一个数据模型:[DataContract]publicclassParent{[DataMember]publicIEnumerableChildren{get;set;}}[DataContract]publicclassChildId{[DataMember]publicstringId{get;set;}}[DataContract]publicclassChildDetail:ChildId{[DataMember]publicstringName{get;set;}}出于实现方便的原因,有时Parent上的ChildId对象实际上是ChildDetail对象。当我使用JS

c# - 将 setter 添加到派生接口(interface)

是否有可能以某种方式在C#中实现此行为:publicinterfaceIReadOnly{DataValue{get;}}internalinterfaceIWritable:IReadOnly{DataValue{get;set;}}我希望能够向外部程序集公开一个只读接口(interface),但在内部使用一个可写接口(interface)(我也可以用不同的方式实现)。我知道我可以使用实现IReadOnly但添加setter的抽象类,但这迫使我从该类派生所有内部实现。 最佳答案 这不是问题:publicinterfaceIRead

c# - 将 setter 添加到派生接口(interface)

是否有可能以某种方式在C#中实现此行为:publicinterfaceIReadOnly{DataValue{get;}}internalinterfaceIWritable:IReadOnly{DataValue{get;set;}}我希望能够向外部程序集公开一个只读接口(interface),但在内部使用一个可写接口(interface)(我也可以用不同的方式实现)。我知道我可以使用实现IReadOnly但添加setter的抽象类,但这迫使我从该类派生所有内部实现。 最佳答案 这不是问题:publicinterfaceIRead

c# - 接口(interface)是否派生自 System.Object? C# 规范说是,埃里克说不,现实说不

问题很简单,在标题中问。C#4.0规范说:(§4.2.2)Theobjectclasstypeistheultimatebaseclassofallothertypes.EverytypeinC#directlyorindirectlyderivesfromtheobjectclasstype.EricLippertsays:Interfacetypes,notbeingclasses,arenotderivedfromobject.现实说:Typet=typeof(ICloneable).BaseType;Console.WriteLine(t==null);True那么规范是错误的