提问人:Romeo 提问时间:4/16/2014 最后编辑:Romeo 更新时间:3/23/2021 访问量:5852
使用 DataContractSerializer 时删除 xmlns:i=“http://www.w3.org/2001/XMLSchema-instance”
remove xmlns:i="http://www.w3.org/2001/XMLSchema-instance" when using DataContractSerializer
问:
如何使用 DataContractSerializer 时删除 xmlns:i=“http://www.w3.org/2001/XMLSchema-instance”。
这就是我得到的:
<ProfileModel xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<Email>[email protected]</Email>
<FirstName>wolverine</FirstName>
<ID>ty1002225</ID>
<LastName>wolverine3</LastName>
<PhoneNumber>66332214477</PhoneNumber>
<SourceSystem>TY</SourceSystem>
</ProfileModel>
我想得到这样的东西:
<ProfileModel>
<Email>[email protected]</Email>
<FirstName>wolverine</FirstName>
<ID>ty1002225</ID>
<LastName>wolverine3</LastName>
<PhoneNumber>66332214477</PhoneNumber>
<SourceSystem>TY</SourceSystem>
</ProfileModel>
这是我的模型:
[DataContract(Namespace = "")]
public class CRMProfileModel
{
[DataMember]
public string FirstName { get; set; }
[DataMember]
public string LastName { get; set; }
[DataMember]
public string Email { get; set; }
[DataMember]
public string PhoneNumber { get; set; }
[DataMember]
public string SourceSystem { get; set; }
[DataMember]
public string ID { get; set; }
}
我试图避免使用字符串替换来删除它。
答:
-1赞
mahi
2/23/2017
#1
如何使用 DataContractSerializer 时删除 xmlns:i=“http://www.w3.org/2001/XMLSchema-instance”。
嗨罗密欧...我还尝试了几个小时来删除xmlns:i=“http://www.w3.org/2001/XMLSchema-instance”。
最后我找到了我最好的,希望它会有所帮助
public IHttpActionResult Post([FromBody]MessageResponse 值)
{
var messageresponse =new CRMProfileModel(){.....};
DataContractSerializer doc = new DataContractSerializer(messageresponse.GetType());
MemoryStream ms = new MemoryStream();
dcs.WriteObject(ms, messageresponse);
var i = Encoding.UTF8.GetString(ms.ToArray());
var r = i.Replace("xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\"","");
var ss = new XmlDocument();
ss.LoadXml(r);
return Content(HttpStatusCode.OK, ss.DocumentElement, Configuration.Formatters.XmlFormatter);
}
评论
4赞
Felix D.
2/23/2017
OP 要求提供“替换”以外的解决方案:我试图避免使用字符串替换来删除它。
评论