【问题标题】:XML Serializer throwing exception: "method not found"XML 序列化程序抛出异常:“找不到方法”
【发布时间】:2015-06-18 14:57:06
【问题描述】:
var txnSerializer = new TxnSerializer(); //generated serializer
TextWriter writer = new StringWriter();
txnSerializer.Serialize(writer, response.ReturnValue);

正在抛出以下异常:

System.InvalidOperationException was unhandled by user code
  HResult=-2146233079
  Message=There was an error generating the XML document.
  Source=System.Xml
  StackTrace:
       at System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter, Object o, XmlSerializerNamespaces namespaces, String encodingStyle, String id)
       at System.Xml.Serialization.XmlSerializer.Serialize(TextWriter textWriter, Object o, XmlSerializerNamespaces namespaces)
       at System.Xml.Serialization.XmlSerializer.Serialize(TextWriter textWriter, Object o)
       at Tests.MiscTests.MyTest() in c:\dev\MiscTests.cs:line 377
  InnerException: System.MissingMethodException
       HResult=-2146233069
       Message=Method not found: 'Project.ClosingInstructionsType Project.Txn.get_ClosingInstructions()'.
       Source=Project.Schema.XmlSerializers
       StackTrace:
            at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1.Write1761_Txn(String n, String ns, Txn o, Boolean isNullable, Boolean needType)
            at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1.Write3518_Txn(Object o)
            at Microsoft.Xml.Serialization.GeneratedAssembly.TxnSerializer.Serialize(Object objectToSerialize, XmlSerializationWriter writer)
            at System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter, Object o, XmlSerializerNamespaces namespaces, String encodingStyle, String id)
       InnerException: 

这是奇怪的部分:它在团队中的所有其他开发工作站上都​​能正常工作,除了我的。这是许多失败的测试之一,所有失败的测试都出现相同的错误。救命!

【问题讨论】:

    标签: .net xml xml-serialization mstest


    【解决方案1】:

    System.MissingMethodException 几乎总是不正确的 .NET 应用程序环境的症状(例如,DLL 版本不匹配)。我会尝试以下操作:

    • 重建并重新部署整个解决方案。根据您的部署选项,您可能希望在重新部署之前删除(清理)部署文件夹中的所有现有 .DLL。当旧程序集在不应该出现的地方徘徊时,可能会发生此异常。重新部署后重新启动 IIS。
    • 使用gacutil /u DLL_NAME 从 GAC 中删除所有依赖程序集。在此之后重新启动 IIS。使用gacutil /if "<path to the assembly .dll file>" 重新安装 GAC 中所需的正确程序集

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-28
      • 1970-01-01
      • 2021-10-19
      • 1970-01-01
      • 2014-06-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多