这个问题可能有几个方面,所以请先通读。
假设您有一个结构,其中包含一些可以很好地打包到 Int64 中的小 int,并且当您希望将结构用作 C# 中的类型时,您希望通过 Web 方法将其公开为 In64 - 这样 WSDL 就拥有它并且您保留基本REST 能力(简单类型使 GET 调用成为可能)。
到目前为止,我发现的最接近的是 SqlDateTime - 它在 WSDL 中自动变形为 dateTime(有一个似乎管理 XSD/WSDL 类型等价加上 IXmlSerializable 的属性),但这还不够。Web 方法仍被识别为“具有复杂参数”,因此对 GET 请求不可用。
更新:XSD/WSDL 和 SOAP 调用完全尊重类型等效性 - 问题在于 GET 调用 - 根本不会生成 RESTful URL 路径。
寻找有关可能的附加属性、接口、连接点的信息,如果有人偶然发现一个结构或内部类设法与任何“原始”标量类型进行完全类型等效(DayTime 不完全是原始的,但仍然得到这样治疗)。此外,如果 soemone 知道一种方法来建立更强的类型等效性或添加/标记一个结构以被视为简单(标量)值类型 - 那就更好了。
请不要发布只是为了说一些讨厌的话或宣扬私人意识形态。对于熟悉 Reflector 并阅读代码的人来说,这是一个严肃的灰色地带问题。如果你认为你可以把它意识形态化,你甚至不知道这个问题。但是,如果您可以指出导致/决定可以通过 GET 请求提供什么服务的实际代码,请发布,即使这样做您证明了将类型等效性扩展到 GET 请求是不可能的。
哦,CLR 是 2.x/3.x。
感谢那些提供帮助的人和那些不破坏的人。