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 能帮助其他面临问题的人:)
我需要在不使用 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 能帮助其他面临问题的人:)