互联网解决方案咨询

梦想有多大路就会有多远:作一颗IT量子
  首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

asp.net web service引用外部DLL中枚举的问题

Posted on 2009-04-23 16:41  互联网粒子  阅读(446)  评论(0编辑  收藏  举报


 在.net中使用web service时发现有一个这样的问题,我先在一个Common的dll包中定义了一个通用的枚举变量

SNET.Common.Identifier.MemberRole

{

         NetworkOwner = 3,
        
        /// <remarks/>
        NetworkMember = 4,
        
        /// <remarks/>
        NetworkAdmin = 5

}

我在Member web service  引用这个DLL后,发布到IIS,然后在到WEB SITE中引用这个WEB SERVICE

发现在这个web servicer的实例的也有这个定义,可以在它的Reference.cs中看到这样的

 public enum MemberRole {

  NetworkOwner,
        
        /// <remarks/>
        NetworkMember,
        
        /// <remarks/>
        NetworkAdmin

}

而我在PAGE上调用的话MemberRole. NetworkMember它引用了web service实例的的定义,这个值为0了,而不外部类,除非我写全路径SNET.Common.Identifier.MemberRole.MemberRole,这下晕倒了,后来问了些同事.

说,web service引用会自动把那相可用到的定义加入到自己的Reference.cs文件来,然而它的值却变了,因为他们的上下文关系不同,那怎么办,有个办法就是调用的接口定义不要传入枚举值,传一个枚举变量,或直接用Const一个变量好了.