• 从Web服务引用的C#类不正确的反序列化

  • 本文关于 c#,xml,web-services,序列化serialization,xml-serialization
  • CodeGo.net > 从Web服务引用的C#类不正确的反序列化
  •  

    从Web服务引用的C#类不正确的反序列化



    c# xml web-services 序列化serialization xml-serialization
    我有一个Web服务,它的序列化的类(类是从Web服务)到MSMQ,然后一个windows服务正在检查队列和反序列化。 Windows服务有一个Web引用,以获取类。 如果我反序列化内部的Web服务,一切顺利。然而,当我从窗户反序列化服务一切正常,除了两个字符串数组的列空 CodeGo.net,所以我相信是没有得到妥善转移在网上参考。 下面是从类问题中的一个片段:
    [Serializable, XmlInclude(typeof(EmailType))]
    public partial class Email
    {
    [System.Xml.Serialization.XmlElement("BodyParameters")]
    public string[] BodyParameters
    {
    	get
    	{
    		return this.bodyParameters;
    	}
    	set
    	{
    		this.bodyParameters = value;
    	}
    }
    [System.Xml.Serialization.XmlElement("SubjectParameters")]
    public string[] SubjectParameters
    {
    	get
    	{
    		return this.subjectParameters;
    	}
    	set
    	{
    		this.subjectParameters = value;
    	}
    }
    }
    
    在Reference.cs中的文件我在我的Windows服务看起来像这样:
    /// <remarks/>
     [System.Xml.Serialization.XmlElementAttribute("BodyParameters")]
     public string[] BodyParameters {
      get {
       return this.bodyParametersField;
      }
      set {
       this.bodyParametersField = value;
      }
     }
     /// <remarks/>
     [System.Xml.Serialization.XmlElementAttribute("SubjectParameters")]
     public string[] SubjectParameters {
      get {
       return this.subjectParametersField;
      }
      set {
       this.subjectParametersField = value;
      }
     }
    
    有没有特殊的办法,我要引用的类或设置字符串[]的类中为它被正确引用? 下面是我得到的,如果我序列化到一个文件的输出:
    <?xml version="1.0" encoding="utf-8"?>
    <Email xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xmlns:xsd="http://www.w3.org/2001/XMLSchema" MessageType="None" PackageID="0"  To="asdf@asdf.com" Subject="testing..." Body="this is a test" IsHTML="false">
     <BodyParameters>one two</BodyParameters>
     <BodyParameters>three four</BodyParameters>
     <BodyParameters>test test</BodyParameters>
     <SubjectParameters>foo</SubjectParameters>
    </Email>
    
    请记住,一切,除了进出罚款的窗口服务。 Web服务,一切正常。
    本文地址 :CodeGo.net/1482719/
    -------------------------------------------------------------------------------------------------------------------------
    1.你需要把[XmlArray]对房地产这样的
    
     [System.Xml.Serialization.XmlArrayAttribute(ElementName="SubjectParameters")]
     public string[] SubjectParameters {
      get {
       return this.subjectParametersField;
      }
      set {
       this.subjectParametersField = value;
      }
     }
    

    2. 我这几年前开发一个多层的应用程序时,碰上了。我希望你的情况是因为我的是,所以这将是有帮助的。 我们的设置是,我们已经在一台服务器专用于刚煮好的Web服务,所有的之间传递数据 类是在Web服务项目中定义。例如:
    <Serializable()> _
    Public Class RetailInformation_StoreInformation
    ... 
    End Class
    
    当我们有一个客户端端类尝试deseriallize序列化的数据,我们不能这样做。我们试图复制了包含RetailInformation_StoreInformation类到客户端端应用程序的dll,但它只是无法反序列化。 我们最终发现了这个。 假设我们有一个客户端端应用程序StoreInfoDisplayApp 在StoreInfoDisplayApp项目中 CodeGo.net,我们已经添加了一个Web引用到Web服务RetailInfoService。 我们发现,我们不能从这样的dll反序列化RetailInformation_StoreInformation:
    Private Function DeSerializeStoreInfo(ByVal path As String) As RetailInformation_StoreInformation
      Dim ser As New System.Xml.Serialization.XmlSerializer(GetType(RetailInformation_StoreInformation))
      Dim reader As System.IO.Stream = File.OpenRead(path)
      Dim returnvalue As RetailInformation_StoreInformation = CType(ser.Deserialize(reader), RetailInformation_StoreInformation)
      reader.Close()
      Return returnvalue
     End Function
    
    (或-内存是blur的),看着这个为* StoreInfoDisplayApp.RetailInformation_StoreInformation * 相反,我们不得不改变的所有实例 * RetailInformation_StoreInformation * 至 * RetailInfoService.RetailInformation_StoreInformation * 指定我们被反序列化的类型是由Web服务送达了该类型。那么它的工作就像一个桃子!
    本文标题 :从Web服务引用的C#类不正确的反序列化
    本文地址 :CodeGo.net/1482719/
    1. Windows服务打印,使用CreateProcessAsUser 为什么会句柄无效?
    2. C#中的正则表达式:返回结果的集合
    3. winform 如何获取局域网中所有打印机的状态?
    4. GDI RoundRect在Compact Framework的:使圆角矩形的外透明
    5. 引用jmail 实例化时出错!瞧瞧
    6. LINQ到SQL:的OnValidate()和自定义域模型类
    7. 怎么判断两个对象是不是相等
    8. 如何声明,它返回的“东西”的泛型集合的方法(C#)
    9. (1-2/15)^3.5的 3.5次方 怎么写
    10. MVC在c#中取胜。申请表格

     
    

    Copyright © 2017 CodeGo.net
    http://codego.net/xinwen/ 足球比分网 足球比分 医药招商网 邵阳县新闻