我有这样的情况,我有
- WCF 服务 (VS2008) 托管在某处
- 主要解决方案(VS2005),它有一个“类库”类型的消费者项目,服务引用到这个 WCF 服务
在数据合同中,我有一个数据成员如下......
[DataContract] public class Cmd { [DataMember] public string CommandText; [DataMember] public CommandType CommandType; }
代理 service.cs 是在我的消费者项目的服务参考文件夹中生成的(可能是因为我使用的是 vs 2005),其中包含服务的所有声明,其中 enum CommandType 已获得新定义
[System.CodeDom.Compiler.GeneratedCodeAttribute("svcutil", "3.0.4506.30")]
[System.SerializableAttribute()]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.datacontract.org/2004/07/System.Data")]
public enum CommandType
{
Text,
StoredProcedure,
TableDirect,
}
而不是来自 System.Data 的原始枚举
public enum CommandType
{
Text = 1,
StoredProcedure = 4,
TableDirect = 512,
}
这会导致从客户端到服务器的 CommandType 值分配不正确,
- 我应该怎么做才能克服这一点。
- 我们能否在 WCF 服务上覆盖此 CommandType 枚举以在整个过程中获得相同的枚举定义。
抱歉这么长的问题陈述......