我正在创建一个web服务,它应该从具有相同类名(但位于不同名称空间中)的相同类库中返回两个复杂类型。 当我在浏览器中打开TestService.asmx时,出现异常(请参见下文)。 有没有一种方法(不是重命名课程的班级其他:d)来解决这个在c#web服务中使用与返回类型不同的类作为返回类型
我想装饰我的方法与
[WebMethod(MessageName="MyNamespace1.SomeClass")]
与
[return: XmlElement("SomeClass1", Namespace = "http://tempuri.org/NameSpace1")]
-
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
namespace MyWebservice
{
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
public class TestService : System.Web.Services.WebService
{
public MyNamespace1.SomeClass GetSomeClass1()
{
return new MyNamespace1.SomeClass() { Name = "SomeClass1" };
}
public MyNamespace2.SomeClass GetSomeClass2()
{
return new MyNamespace2.SomeClass() { Name = "SomeClass1" };
}
}
}
namespace MyNamespace1
{
public class SomeClass
{
public string Name { get; set; }
}
}
namespace MyNamespace2
{
public class SomeClass
{
public string Name { get; set; }
}
}
引发此异常:
[InvalidOperationException: Die Typen 'MyNamespace2.SomeClass' und 'MyNamespace1.SomeClass' verwenden den XML-Typnamen 'SomeClass' im Namespace 'http://tempuri.org/'. Geben Sie mit XML-Attributen einen eindeutigen XML-Namen und/oder Namespace für den Typ an.]
System.Xml.Serialization.XmlReflectionImporter.GetTypeMapping(String typeName, String ns, TypeDesc typeDesc, NameTable typeLib, Type type) +4071889
System.Xml.Serialization.XmlReflectionImporter.ImportStructLikeMapping(StructModel model, String ns, Boolean openModel, XmlAttributes a, RecursionLimiter limiter) +150
System.Xml.Serialization.XmlReflectionImporter.ImportTypeMapping(TypeModel model, String ns, ImportContext context, String dataType, XmlAttributes a, Boolean repeats, Boolean openModel, RecursionLimiter limiter) +1604
本地化没有错误代码的错误信息......什么洪水猛兽 – ANeves
ICH verstehe nicht:/ – Reniuz