Doo*_*ght 1 c# enums web-services
好吧,我试图在我的webservice上公开这个枚举类型时遇到了重大问题.在暴露它们方面,它的功能与我的自定义类不同.
服务器端:
[DataContractAttribute]
public enum EventReportType {EventAutoContract, DailyAutoContract, EventFunctionSheet }
Run Code Online (Sandbox Code Playgroud)
客户端:
// For a custom class I would do:
ServerRef.MyClass maclass = new ServerRef.MyClass();
// but the following does not work.
ServerRef.EventReportType myenum = new ServerRef.EventReportType();
enum test = new ServerRef.EventReportType();
Run Code Online (Sandbox Code Playgroud)
即使在WSDL中我也不认为它,所以我如何让它正确曝光?我将如何消费和使用它?
请看一下我的另一个问题:赏金类型的REST?
因为类型是a enum
,所以不创建它的实例,您可以访问值的静态表示.
例如,
var value = EventReportType.EventAutoContract;
Run Code Online (Sandbox Code Playgroud)
但一般情况下,除非你需要,否则你不会将值赋值给变量,你只需要明确地使用它; 所以,比如说调用一个接受这种类型的枚举值的服务方法:
myServiceCall(EventReportType.EventAutoContract);
Run Code Online (Sandbox Code Playgroud)
请注意,您不需要明确拼写其中DataContractAttribute
任何一个,这可以简化为DataContract
,同样,您可能还需要enum
使用该EnumMember
属性来扩充每个成员.所以...
[DataContract]
public enum EventReportType
{
[EnumMember]
EventAutoContract,
[EnumMember]
DailyAutoContract,
[EnumMember]
EventFunctionSheet
}
Run Code Online (Sandbox Code Playgroud)
您可以在此处找到有关在数据协定中使用枚举类型的参考.最终,如果您enum
在服务中的某个地方正确定义并使用了客户端,enum
则会生成.