我有一个项目Common,它有一个服务引用.将对Newtonsoft.json(版本6.0.2)的引用添加到具有服务引用的同一项目(Common)和Serializable类ChatLine之后
[Serializable]
public class ChatLine
{
[JsonProperty("L")]
public string LineId { get; set; }
[JsonProperty("CT")]
public DateTime ConversationTimeInUtc { get; set; }
[JsonProperty("S")]
public string SenderId { get; set; }
[JsonProperty("R")]
public IEnumerable<string> Recipients { get; set; }
[JsonProperty("CM")]
public string ConversationMessage { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我更新了服务参考.现在,在构建项目Common时,会弹出以下错误.
构建错误:
错误5命名空间''已包含'AuditStatus'的定义
这是更新服务引用后在Reference.cs中生成的代码
[DataContract]
public enum AuditStatus : byte
{
[EnumMember]
Both,
[EnumMember]
IsAudited,
[EnumMember]
IsNotAudited,
}
// After updating reference, two definitions for above data contract is generated.
/// …Run Code Online (Sandbox Code Playgroud) 我正在使用DatacontractSerializer将我的domainModel序列化为xml文件.我得到的输出如下.
<z:anyType xmlns:i="http://www.w3.org/2001/XMLSchema-instance" z:Id="1" xmlns:d1p1="DCSerialization_IGITApproach" i:type="d1p1:X" xmlns:z="http://schemas.microsoft.com/2003/10/Serialization/">
<d1p1:Name z:Id="2">Ankit</d1p1:Name>
<d1p1:PointsDictionary xmlns:d2p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" z:Id="3" z:Size="1">
<d2p1:KeyValueOfstringPointsArrayq9VX7VJJ>
<d2p1:Key z:Id="4">key1</d2p1:Key>
<d2p1:Value xmlns:d4p1="http://schemas.datacontract.org/2004/07/SerializationApproach" z:Id="5">
<d4p1:points z:Id="6" z:Size="2">
<d2p1:double>45.5</d2p1:double>
<d2p1:double>546.45</d2p1:double>
</d4p1:points>
</d2p1:Value>
</d2p1:KeyValueOfstringPointsArrayq9VX7VJJ>
</d1p1:PointsDictionary>
</z:anyType>
Run Code Online (Sandbox Code Playgroud)
我想摆脱这些"d1p1"名称空间前缀,只想要</PointDictionary>标签代替</d1p1:PointsDictionary>.我已经尝试将DataMember属性放在我的类属性上,但它并没有解决很多问题.由于最终用户可以编辑输出XML文件,因此与上面的文件相比,我希望看到更清晰的XML文件.
首要任务是仅通过代码控制它,如果不可能,则转到XSLT或任何其他模式.
serialization namespaces xml-serialization prefix wcf-serialization
我偶尔会遇到在WCF序列化期间抛出应用程序异常的问题(从我的OperationContract返回DataContract之后).我得到的唯一(而且意义不大)消息是
System.ServiceModel.CommunicationException:基础连接已关闭:连接意外关闭.
没有任何洞察内部异常,这使得很难找到序列化过程中导致错误的原因.
有人知道如何跟踪,记录和调试这些异常的好方法吗?或者甚至可以更好地捕获异常,处理它们并将定义的FaulMessage发送给客户端?
谢谢
我在尝试将数据集合发送到我们的服务时收到错误.但是,如果我只将一个项目添加到集合中,那么它会产生罚款.一旦我添加了多个项目,我就会收到以下错误
NetDataContractSerializer不支持使用类型"SmartTrade.Shared.Common.PaymentTerm"作为只获取集合.请考虑使用CollectionDataContractAttribute属性或SerializableAttribute属性标记类型,或者向属性添加setter.
所以这里需要注意的关键是我可以使用单个项目发送集合(IList <>).我已将MaxReceivedMessageSize和MaxArrayLength增加到我认为更合理的范围.
任何人都可以帮助我
我正在使用Entity Framework 4,在一些实体之间有循环引用,但是我得到了stackoverflow异常,这是启用延迟加载的情况......
然后我将延迟加载启用为false并包含所有相关实体使用Include()方法但仍然得到相同的错误...需要帮助....