C# 在 XmlType() 属性中使用特殊字符转义 XmlType 名称

C# Escaping XmlType Name with special char within XmlType() Attribute

我需要在不使用 WSDL 的情况下实现 SOAP 服务(因为它已损坏且不会修复)。 现在我卡在需要为某些 类(基础 类 和派生的)

设置类型属性的地步

通常我会这样装饰我的 DTO:

基类:

[XmlInclude(typeof(Person))]
[XmlType("Partner", Namespace = "http://....")]
public abstract class Partner 
{...}

和 DerivedOne:

 [XmlType("Person")]
public class Person : Partner
{...}

结果如下所示:
<tar:Partner xsi:type="Person">

但现在 API 文档告诉我创建一个请求,如:

<tar:Partner xsi:type="par:CT_Person">

(在 Fiddler 中测试并有效) 如何创建带有名称空间前缀的类型名称集 (par) 或将名称设置为:

[XmlType("par:CT_Person")]?

停用(覆盖)转义功能对我来说不是选项。

提前致谢。

经过一整天的测试和尝试...在写下我的问题后,我自己得到了答案。

当我在我的基类中设置命名空间时,我可以在我的派生类中设置一个不同的命名空间 URL。比它的工作...

希望这个 post 能帮助其他面临问题的人:)