将使用我的 wcf Web 服务的那个有 2 个请求:他希望从服务返回的对象反序列化 xml 的第一个元素中的另一个属性。他希望修改该 xml 元素的现有属性。
按顺序,这是反序列化:
ServiceReference1.MyClient c = new ServiceReference1.MyClient();
ServiceReference1.MyRequest req = new ServiceReference1.MyRequest();
// setting the request
// richiedo la lista - prezzi
ServiceReference1.MyResponse res = c.GetPricesWithTecdocFormat(req);
// serializzation
string OutputPath = this.Request.PhysicalApplicationPath;
System.Runtime.Serialization.DataContractSerializer x = new System.Runtime.Serialization.DataContractSerializer(res.GetType());
using (FileStream fs = new FileStream(OutputPath + "MyResponse.xml", FileMode.Create))
{
x.WriteObject(fs, res);
}
生成的 XML 文件开头如下:
<?xml version="1.0"?>
<MyResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
...
要求是这样的:
<?xml version="1.0"?>
<MyResponse xsi:noNamespaceSchemaLocation="genericResponse.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
然后...
xmlns:i 必须是 xmlns:xsi
在元素中存在引用 .xsd 文件的属性
我用 MessageInspector 试了又试,但没有结果——这让我发疯了......
我能怎么做?
皮莱吉