如何在 Web Services 接口中公开静态变量?

biggates_86 2008-12-25 11:29:47
[DataContract]
public sealed class AlertStatus
{
private char data = ' ';

private AlertStatus ( char data )
{
this.data = data;
}

/// <summary>
/// 获得状态在数据库中的表示
/// </summary>
/// <value>The data.</value>
[DataMember]
public char Data
{
get { return this.data; }
private set { this.data = value; }
}

/// <summary>
/// 从 char 进行转换
/// </summary>
/// <param name="data">The data.</param>
/// <returns></returns>
public AlertStatus Parse ( char data )
{
data = char.ToUpper ( data );
if ( data == 'A' ) { return AlertStatus.Dealt; }
else if ( data == 'C' ) { return AlertStatus.Checked; }
else if ( data == 'D' ) { return AlertStatus.Discarded; }
else if ( data == 'U' ) { return AlertStatus.New; }
else { return AlertStatus.Unknown; }
}

/// <summary>
/// 不指定/其它
/// </summary>
public static AlertStatus Unknown = new AlertStatus ( ' ' );

/// <summary>
/// 未确认
/// </summary>
public static AlertStatus New = new AlertStatus ( 'U' );

/// <summary>
/// 确认
/// </summary>
public static AlertStatus Checked = new AlertStatus ( 'C' );

/// <summary>
/// 废弃
/// </summary>
public static AlertStatus Discarded = new AlertStatus ( 'D' );

/// <summary>
/// 已处理
/// </summary>
public static AlertStatus Dealt = new AlertStatus ( 'A' );
}


如上所示,现有五个静态变量 AlertStatus.Unknown 等,如何将其在 Web Service 接口中公开?已知用 [DataMember] 属性不行。
客户端需要根据 Web Service 接口自动生成访问器,请问有没有相应的属性把这几个静态变量标记成客户端能够访问的类型?
...全文
216 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
biggates_86 2008-12-30
  • 打赏
  • 举报
回复
31日要出门……提前结贴了。
derelictangel 2008-12-29
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 yaazz 的回复:]
kankan
[/Quote]

PS:
我的目标是 ---->

^_^
biggates_86 2008-12-29
  • 打赏
  • 举报
回复
貌似没什么人了吧……过两天把帖结了算了
yaazz 2008-12-28
  • 打赏
  • 举报
回复
kankan
vrhero 2008-12-28
  • 打赏
  • 举报
回复
莫名其妙的想法...
EveryCase 2008-12-28
  • 打赏
  • 举报
回复
yulien 2008-12-28
  • 打赏
  • 举报
回复
liangshaojun 2008-12-27
  • 打赏
  • 举报
回复
关注中~
claymore1114 2008-12-27
  • 打赏
  • 举报
回复
mark
biggates_86 2008-12-27
  • 打赏
  • 举报
回复
@spirit_only :
其实主要思想是要把处理逻辑传递到客户端,避免做重复的操作。
如果把几个 Data 的取值做成枚举,那么客户端虽然能够得到这些值,但还是需要做一个相同逻辑的类来实现 Format 等操作。
biggates_86 2008-12-27
  • 打赏
  • 举报
回复
@jin20000:
使用公开方法的话,在客户端也不能生成方法的内容吧?这样要获得一个值就要提交到服务器端一次。
虽然公开 Parse 方法,并用 EnumMember 公开 Data 字段的值,并且在服务器端处理的话,也能勉强达到效果,但是效率很低啊……

现在想找到能在客户端直接能生成的写法。
winner2050 2008-12-27
  • 打赏
  • 举报
回复
WS里面用不着非得静态变量吧。
spirit_only 2008-12-27
  • 打赏
  • 举报
回复
WCF在是将实例进行传输的,也就是说不可能将静态字段进行封送的。

为什么不直接将 AlertStatus 定义为枚举类型进行封送?
jin20000 2008-12-26
  • 打赏
  • 举报
回复
还是通过方法来给出吧
njciapple 2008-12-25
  • 打赏
  • 举报
回复
还真没遇到过,帮不上忙了!
HDNGO 2008-12-25
  • 打赏
  • 举报
回复
关注一下~
jiang_jiajia10 2008-12-25
  • 打赏
  • 举报
回复
UP;

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧