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