我正在编写一个简单的 wcf 服务,将请求提交给某个网关进行处理。
正在通过执行以下操作来执行请求:
我正在编写一个 WCF 服务,该服务将请求提交给一些期望得到如下内容的服务:
gatewayService.SendRequest(request);
Run Code Online (Sandbox Code Playgroud)
其中 gatewayService 是 WCF 代理,请求是我自己的对象,它继承了 WCF Message 对象。
请求对象有几个属性,如:
[MessageBodyMember]
public ReportCommandLineRequest ReportRequest { get; set; }
[MessageBodyMember]
public ImportCommandLineRequest ImportRequest { get; set; }
Run Code Online (Sandbox Code Playgroud)
我的问题是当这个请求对象被序列化时。在服务器端,我收到了一条看起来像这样的大块肥皂消息:
<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope"
xmlns:a="http://www.w3.org/2005/08/addressing">
<s:Header>
<a:Action s:mustUnderstand="1">http://tempuri.org/IReportClient/RunReport/IGatewayAdapter/SendRequest</a:Action>
<VsDebuggerCausalityData xmlns="http://schemas.microsoft.com/vstudio/diagnostics/servicemodelsink">uIDPo4jiWNjcsdxHiUhlOA63xYEAAAAApgt+BuVvcEixP33+yOQTgRHZQSyr4L5ImMHVeEWLFBMACQAA</VsDebuggerCausalityData>
<a:To s:mustUnderstand="1">net.tems://localhost:7222/queue/LB.FIA.Gateway.STAGE.InputQueue</a:To>
</s:Header>
<s:Body>
<SendRequest xmlns="http://tempuri.org/IReportClient/RunReport">
<request xmlns:b="http://schemas.datacontract.org/2004/07....
Run Code Online (Sandbox Code Playgroud)
另一方面,我希望在服务器端只得到上面列出的属性的序列化(ReportRequest/ImportRequest),并希望得到一个序列化的 xml 看起来像这样(没有里面的所有垃圾:
<ReportCommandLineRequest>
<outputFileName>gatewayReportOutput-01082010-150043.pdf</outputFileName>
<CommandLineArg
name="format"
..
</ReportCommandLineRequest>
Run Code Online (Sandbox Code Playgroud)
谁能帮我弄清楚我该怎么做?
谢谢。
我正在寻找一种将 Java 对象序列化为 XML 以供 RESTful Web 服务使用的方法。我没有 XSD。
我看过以下内容:
JAXB - 相当重的类需要注释,还有一个 ObjectFactory 类和/或一个 jaxb.index 文件
简单 - 需要注释但不需要其他配置类/文件。不幸的是它不能序列化集合。
XStream - 不需要注释等,但不支持泛型
还有其他人有什么建议吗?
[XmlElement(ElementName = ElementConstants.CreateDate,
Namespace = "http://api.facebook.com/1.0/",
DataType = "date", Type = typeof(DateTime))]
public DateTime CreateDate { get; set; }
Run Code Online (Sandbox Code Playgroud)
如果我尝试在属性中取出DataType:{"字符串'1233469624'不是有效的AllXsd值."}
以下是其中一个节点值的示例:
<created>1230437805</created>
Run Code Online (Sandbox Code Playgroud)
我不知道如何在这里设置DateTime属性,以便成功反序列化.
我正面临这个问题
class person
{
;
}
person p = new person();
XmlSerializer ser = new XmlSerializer(p.GetType());
FileStream fs = File.Open("sam.xml",FileMode.OpenOrCreate, FileAccess.Write);
ser.Serialize(fs,p)
fs.flush();
fs.close();
FileStream stream = FileStream("sam.xml", FileMode.Open);
XmlDictionaryReader xdr = XmlDictionaryReader.CreateTextReader(stream,new XmlDictionaryReaderQuotas());
Run Code Online (Sandbox Code Playgroud)
现在我的问题是如何在不创建xml文件的情况下创建xdr对象.
我正在尝试序列化这个XML,我已经完成了大部分工作,但我想正确地对信息进行分类,这是我当前的输出.
<CountryData>
<CountryName Type="Text">United States of America</CountryName>
<CountryName Type="Text">Kingdom of Belgium</CountryName>
<CountryCode Type="Text">US</CountryCode >
<CountryCode Type="Text">BE</CountryCode >
<PercentOfBusiness Type="Numeric">0.5</PercentOfBusiness>
<PercentOfBusiness Type="Numeric">0.5</PercentOfBusiness>
<AverageBusiness Type="Numeric">3.5%</AverageBusiness >
<AverageBusiness Type="Numeric">3.5%</AverageBusiness >
<SalesMade Type="Text">Very low </SalesMade >
<SalesMade Type="Text">Low</SalesMade >
</CountryData>
Run Code Online (Sandbox Code Playgroud)
但我希望这样
<CountryData>
<Country>
<CountryName Type="Text">United States of America</CountryName>
<CountryCode Type="Text">US</CountryCode >
<PercentOfBusiness Type="Numeric">0.5</PercentOfBusiness>
<AverageBusiness Type="Numeric">3.5</AverageBusiness >
<SalesMade Type="Text">Very low</SalesMade >
</Country>
<Country>
<CountryName Type="Text">Kingdom of Belgium</CountryName>
<CountryCode Type="Text">BE</CountryCode >
<PercentOfBusiness Type="Numeric">0.5</PercentOfBusiness>
<AverageBusiness Type="Numeric">3.5</AverageBusiness >
<SalesMade Type="Text">low</SalesMade >
</Country>
</CountryData>
Run Code Online (Sandbox Code Playgroud)
这就是我所拥有的
public class CountryData
{ …
Run Code Online (Sandbox Code Playgroud) 我想创建一个具有以下结构的XML文件.任何人都可以给我一个可以序列化/反序列化这个XML的类吗?
<Disposition>
<DispositionTextList Description="">
<DispositionText value="">
<DispositionText value="">
</DispositionTextList>
<DispositionTextList Description="">
<DispositionText value="">
<DispositionText value="">
</DispositionTextList>
</Disposition>
Run Code Online (Sandbox Code Playgroud)