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

在.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一个变量好了.