示例数据合同
[DataContract(Namespace = "namespace")]
[KnownType(typeof(KnownType1))]
public class DataContract
{
[DataMember(IsRequired = true)]
public int Value;
}
如何编写用KnownType1代替DataContract的XML语言?我试着这样做:(我忽略了名称空间和所有额外的东西来简化这个例子)
<DataContract>
<Value> 1</Value>
我有接口..。
public interface ApiClient {
<T> void updateData(List<T> data);
}
两个接口的实现..。
public class Version1ApiClient implements ApiClient {
public <Version1DataContract> void updateData(List<Version1DataContract> data) {
// ...
}
}
public class Version2ApiC
嗨,我有以下的类层次结构:
public class SuperJob{
}
public class JobA:SuperJob{
}
public class JobB:SuperJob{
}
当我试图反序列化一个SuperJob时,我得到
Expecting element 'SuperJob' from namespace 'http://schemas.datacontract.org/2004/07/...'.. Encountered 'Element' with name 'JobA', namespace
我有50个用DataContractAttribute标记的类。
这些类形成一个巨大的层次树,它使用DataContractSerializer到xml进行序列化/反序列化。
它们都指定了一个自定义数据域名称空间[DataContract(Namespace="http://example.com")],除了3个类之外,我忽略了这些类。
// Old class definitions
[DataContract(IsReference=true)] // <-- forgot ns
public class Type1{}
[DataContract(IsRefer
我有这样的情况:
Custom Control -> Navigate to its Settings Page -> Tap on a button in the Settings Page -> Show a PhotoChooserTask
因此,假设这个自定义控件必须只显示从用户库加载的图像。
当点击用户控件时,我会显示一个XAML设置页面,其中有一个按钮从图片库加载图像,这个按钮启动PhotoChooserTask。
现在,问题是它在启动任务后立即抛出一个异常。
下面是堆栈跟踪:
+ $exception {System.Runtime.Ser
我突然开始从我的Windows phone7应用程序中得到这个。我不知道我反序列化的数据中发生了什么变化,这会导致这种情况。你知道这是什么意思吗? System.Runtime.Serialization.SerializationException occurred
Message=The resource MultipleIdDefinition was not found in System.Runtime.Serialization
StackTrace:
at System.Runtime.Serialization.ReferencedObjectCache
如何将DataContract与继承一起使用?下面的代码可以工作吗?
[DataContract]
public class ConsoleData
{
[DataMember]
public String Description { get; set; }
}
[DataContract]
public class SomeData : ConsoleData
{
[DataMember]
public int Volume { get; set; }
......
当使用DataContractJsonSerializer反序列化JSON时,如果输入中有选项卡(格式化的JSON),则序列化程序会抛出一个异常(如下所示)。如果我将所有空格、制表符和新行替换为"",则序列化程序能够很好地反序列化它。
怎么回事?
异常
System.MemberAccessException: Cannot create an abstract class.
at System.Runtime.Serialization.FormatterServices.nativeGetUninitializedObject(RuntimeType type)
at S
我有以下几个WCF数据合约:
[DataContract]
public class Hatchback: Car
{
[DataMember]
public int Wheels;
}
[KnownType(Hatchback)]
[DataContract]
public abstract class Car
{
}
我也可以这样写:
[DataContract]
从不实现[DataContract]的基类继承并告诉序列化程序忽略它是可能的(如果是这样的话)吗?
所以就像
//Non-accessible, non-[DataContract] class
public class ThirdPartyOrFrameworkClass
{
public void ConvenienceMethod()
{
//Code
}
//Rest of the class
}
[DataContract (IgnoreBaseClassWhenSerializing = true)]
public class So
[DataContract]
public class UserCertification
{
…
}
[DataContract]
public class UserPhone
{
…
}
[DataContract]
public class UserAddress
{
…
}
[DataContract]
public abstract class Request
{
[DataMember]
public int UserMakingRequest { get; set; }
[DataMember]
public Guid RequestId
我有一个Business (,)类:
public class BDO_LIST_DEPARTMENTS
{
public int DEPARTMENT_ID { get; set; }
public string DEPARTMENT_NAME { get; set; }
}
然后我有一个DataContract类:
[DataContract]
public class DC_LIST_DEPARTMENTS
{
[DataMember]
public int DEPARTMENT_ID { get; set; }
[DataMember]
能帮我解决这个例外吗?我正在使用我的应用程序中提供的导航配方。
这是我得到的一个例外:
Exception message: Type 'System.Windows.Media.ImageSource' cannot be serialized. Consider marking it with the DataContractAttribute attribute, and marking all of its members you want serialized with the DataMemberAttribute attribute.
Stack trace:
我们目前有几个WCF服务,可以直接通过网络公开我们的域模型。换句话说,我们没有在域和服务层之间映射的DTO层。我别无选择,只能直接用DataContract和DataMember修饰我们的域对象。我想在所有在网络上公开的域对象上实现IExtensibleDataObject。有人认为在基类上实现IExtensibleDataObject有什么错吗?所以我会:
[DataContract]
public EntityBase:IExtensibleDataObject{///IExtensibleDataObject Impl}
[DataContract]
public Person:En
我尝试调用一个名为Register的WebInvoke方法,该方法返回一个用户对象中的参数,然后立即返回该对象。它看起来如下所示:
User Register(User user)
{
return user;
}
例如,当调用时,我不确定Name和Namespace属性对DataContract属性有什么作用?
我这样问的原因是因为我最初让我的类使用DataContract属性进行装饰,如下所示:
[DataContract]
public class User
{
// Properties
}
当我打开Fiddler并发送一个Post请求时,它显示方法不允许,但当我将Dat
我使用DataContractSerializer将一个对象数组持久化到文件中。直到最近我开始收到以下消息,它才开始正常工作。
Deserialized object with reference id '15' not found in stream
bei System.Runtime.Serialization.XmlObjectSerializerReadContext.GetExistingObject(String id, Type type, String name, String ns)
bei ReadAbgleichSettingsFromXml
我有一个包含序列化和反序列化的对象列表的类:
[DataContract]
public class Manager
{
[DataMember]
public BigBase[] enemies;
}
包含子类的类:
[DataContract]
[KnownType(typeof(Medium))]
[KnownType(typeof(Small))]
public class BigBase
{
[DataMember]
public bool isMoving;
}
[DataContract]
public class Medium : BigBase
{
}
[DataContract]
public class Credentials
{
[DataMember]
public string UserName {get;set;}
public string Password {get;set;}
}
[DataContract]
public class User
{
[DataMember]
public Credentials Credentials {get;set;}
}
在上面的场景中,由于凭据是用DataMember属性修饰的,那么是否有必要用DataContract修饰凭据类,并用Dat
下面是我的WCF DataContract基类
[DataContract]
public class BaseClass
{
//some datamembers
}
这是我的派生类...
[DataContract]
public class DerivedClass1 : BaseClass
{
[DataMember]
public string ProductName{get;set;}
}
由于要求的一些更改,我添加了另一个派生类型,该类型也具有相同的属性“ProductName”。
所
我想在DataContract类中使用一个自定义的实例化类型(认为可以为空)。我试图写一个IDataContractSurrogate,但它在反序列化时失败了。
我的放大类型如下所示:
public struct Amplified<TValue>
{
public TValue Value { get; set; }
//... some special code ...
}
DataContract可能看起来像这样:
[DataContract] public class MyDTO
{
[DataMember] public Amplified<
我对序列化有疑问。
示例:
interface IBase {}
[DataContract]
class Base : IBase
{
[DataContract]
public Derived Child{get;set;}
}
[DataContract]
[KnownType(typeof(Base))]
class Derived : Base
{
[DataMember]
public IBase Parrent {get;set;}
}
如果我试图在IsolatedStorage中存储Base类的一个实例,它不会被执行;它会挂起。有没有办法做到这一点?
我有一个在服务合同中使用的DataContract。
[DataContract]
public class Task
{
[DataMember]
public int Name;
[DataMember]
public string Type;
[DataMember]
public string Description;
[DataMember]
public SubTask[] SubTasks;
}
[DataContract]
public class SubTask
{
[DataMember]
p
对于application/json或application/xml,我可以使用DataContract进行自定义属性名称绑定:
[HttpPost]
public string Method([FromBody]Model request)
{
}
[DataContract]
public class Model
{
[DataMember(Name="custom_name")]
public string CustomName { get; set; }
}
如何在application/x-www-form-urlencoded中使用DataCont
我有一个枚举
namespace Business
{
public enum Color
{
Red,Green,Blue
}
}
namespace DataContract
{
[DataContract]
public enum Color
{
[EnumMember]
Red,
[EnumMember]
Green,
[EnumMember]
Blue
}
}
我在WCF中使用相同的枚举作为数据契约,具有相同的值。我需要使用转换器将业
我正在尝试检查一个类型是定义了DataContract属性,还是继承了定义了该属性的类型
例如:
[DataContract]
public class Base
{
}
public class Child : Base
{
}
// IsDefined(typeof(Child), typeof(DataContract)) should be true;
Attribute.IsDefined和Attribute.GetCustomAttribute不会查看基类
任何人都知道如何做到这一点,而无需查看BaseClasses
我有一个使用MultPorpose的WebService的Silverlight应用程序,当我使用该标记时:
[XmlInclude(typeof(StringCustomField))]
在我的类中,我得到了这个错误:
System.InvalidOperationException: An exception was thrown in a call to a WSDL export extension: System.ServiceModel.Description.DataContractSerializerOperationBehavior
contract: SCI4WebSer