WSDL:如何使用 C# FlagsAttribute 创建枚举?

发布于 2024-10-24 21:46:57 字数 439 浏览 6 评论 0原文

基本上,我创建了 WSDL 并添加了一个带有枚举值的 SimpleType:A、B、C。当我使用此 wsdl 构建服务时,我希望使用 FlagsAttribute 构建枚举,但是我该如何构建在我的 wsdl 中指定吗?

我正在使用 svcutil.exe 生成 C# 代码。

更新:我正在使用 svcutil.exe 构建服务器端代码。我通过调用:svcutil.exe "Foo.wsdl" "global.xsd" 来实现此目的。但是,我不确定如何正确标记我的 wsdl/xsd 标签,以便生成的代码如下所示:

[Flags] //<-- How do you get this to become autogenerated?
public enum SomeEnum
{
    A,
    B,
    C
}

Basically, I created my WSDL and added a SimpleType with enum values: A, B, C. When I build my service with this wsdl I want the enum to be constructed with the FlagsAttribute, but how do I specify that in my wsdl?

I'm using svcutil.exe to generate my C# code.

Update: I am building my server-side code using svcutil.exe. I do so by calling: svcutil.exe "Foo.wsdl" "global.xsd". But, I'm unsure how to properly markup my wsdl/xsd tags so that the generated code comes out like so:

[Flags] //<-- How do you get this to become autogenerated?
public enum SomeEnum
{
    A,
    B,
    C
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

何以畏孤独 2024-10-31 21:46:57

数据协定中的枚举类型很好地解释了这一点。从他们的例子来看:

[DataContract][Flags]
public enum CarFeatures
{
    None = 0,
    [EnumMember]
    AirConditioner = 1,
    [EnumMember]
    AutomaticTransmission = 2,
    [EnumMember]
    PowerDoors = 4,
    AlloyWheels = 8,
    DeluxePackage = AirConditioner | AutomaticTransmission | PowerDoors | AlloyWheels,
    [EnumMember]
    CDPlayer = 16,
    [EnumMember]
    TapePlayer = 32,
    MusicPackage = CDPlayer | TapePlayer,
    [EnumMember]
    Everything = DeluxePackage | MusicPackage
}

除非我没有抓住重点。

Enumeration Types in Data Contracts explains this pretty nicely. From their example:

[DataContract][Flags]
public enum CarFeatures
{
    None = 0,
    [EnumMember]
    AirConditioner = 1,
    [EnumMember]
    AutomaticTransmission = 2,
    [EnumMember]
    PowerDoors = 4,
    AlloyWheels = 8,
    DeluxePackage = AirConditioner | AutomaticTransmission | PowerDoors | AlloyWheels,
    [EnumMember]
    CDPlayer = 16,
    [EnumMember]
    TapePlayer = 32,
    MusicPackage = CDPlayer | TapePlayer,
    [EnumMember]
    Everything = DeluxePackage | MusicPackage
}

Unless I'm missing the point here.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文