WCF服务的操作是一个比较灵活的操作技巧,如果想要彻底掌握这些应用技术,就需要我们不断的去实践中总结经验。首先我们来了解一下什么事WCF变更行为。在进行如何处理变更之前,需要解释一下WCF变更行为是什么意思。以下列出构成变更的一些行为(按照契约类型列出):#t#
数据契约
添加数据成员
删除数据成员
重命名数据成员
改变数据成员类型
服务契约
添加操作
删除操作
重命名服务契约
操作契约
重命名操作
改变操作签名
这些WCF变更行为可能会导致新的商业需求,硬件整合,业务合并,新的规则或者一些其他的外部因素。底线是在开发者的控制变更以外的一些东西,并且软件必须进行调整。在WCF世界中处理变更是好消息或坏消息不断出现的过程。你可以很容易的处理一些方案,而其它的会引导你给出"yes, but…"这样可怕的回应。
在WCF中的版本控制和WCF变更行为WCF变更行为
在.NET世界中,处理变更***个需要考虑的问题就是版本控制。你可以组合版本允许在以后组件的修订版本中有意料之外的或是终止的变更。这样以来,受到影响的客户可以继续使用旧版本的组合,你也可以避免因为这终止性的变更而感到头疼。
正常合乎逻辑的问题是“WCF支持版本控制吗?”回答也是那个可怕的"yes, but…"。当你在WCF中创建一个数据契约的时候,该契约会产生一个XML构架。Consumers引用这个构架并使用它生成一个代理类。严格的说,这个数据不能验证这个构架是否能继续进行。但是你将会看到,这个有时候会对导致服务 consumers一些意外的而且是令人沮丧的行为。
- namespace SampleService
- {
- [ServiceContract]
- public interface IPersonService
- {
- [OperationContract]
- Person GetPerson(int personId);
- [OperationContract]
- void UpdatePerson(Person p);
- }
- public class Person
- {
- private string _firstName = string.Empty;
- private string _lastName = string.Empty;
- [DataMember]
- public string FirstName
- {
- get { return _firstName; }
- set { _firstName = value; }
- }
- [DataMember]
- public string LastName
- {
- get { return _lastName; }
- set { _lastName = value; }
- }
- }
- }
以上就是我们对WCF变更行为的相关介绍。