标签: wcf-serialization

Newtonsoft.Json导致序列化发生两次,导致Reference.cs中出现重复定义

我有一个项目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)

c# wcf json.net wcf-serialization

16
推荐指数
1
解决办法
886
查看次数

删除DataContractSerializer XML输出中的"d1p1"命名空间前缀

我正在使用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

14
推荐指数
2
解决办法
1万
查看次数

如何跟踪WCF序列化问题/异常

我偶尔会遇到在WCF序列化期间抛出应用程序异常的问题(从我的OperationContract返回DataContract之后).我得到的唯一(而且意义不大)消息是

System.ServiceModel.CommunicationException:基础连接已关闭:连接意外关闭.

没有任何洞察内部异常,这使得很难找到序列化过程中导致错误的原因.

有人知道如何跟踪,记录和调试这些异常的好方法吗?或者甚至可以更好地捕获异常,处理它们并将定义的FaulMessage发送给客户端?

谢谢

.net c# wcf wcf-faults wcf-serialization

9
推荐指数
1
解决办法
6854
查看次数

WCF序列化异常 - NetDataContractSerializer

我在尝试将数据集合发送到我们的服务时收到错误.但是,如果我只将一个项目添加到集合中,那么它会产生罚款.一旦我添加了多个项目,我就会收到以下错误

NetDataContractSerializer不支持使用类型"SmartTrade.Shared.Common.PaymentTerm"作为只获取集合.请考虑使用CollectionDataContractAttribute属性或SerializableAttribute属性标记类型,或者向属性添加setter.

所以这里需要注意的关键是我可以使用单个项目发送集合(IList <>).我已将MaxReceivedMessageSize和MaxArrayLength增加到我认为更合理的范围.

任何人都可以帮助我

c# wcf-serialization

5
推荐指数
1
解决办法
2083
查看次数

实体框架中WCF Datacontract循环引用序列化的问题

我正在使用Entity Framework 4,在一些实体之间有循环引用,但是我得到了stackoverflow异常,这是启用延迟加载的情况......

然后我将延迟加载启用为false并包含所有相关实体使用Include()方法但仍然得到相同的错误...需要帮助....

c# asp.net wcf entity-framework-4 wcf-serialization

3
推荐指数
1
解决办法
1833
查看次数