using System.ServiceModel; namespace com._80community.unittest.Demo { /* * [ServiceContract]服务协定定义 * [ServiceContract] 这个特性告诉编译器,该类型(指IAnimal)是一个服务契约 * */ [ServiceContract] public interface IAnimal { /* * [OperationContract]要公开的服务方法 * []代表特性继承自System.Attribute类的类,其实特性和注释。类似,是用于描述程序集、类型、成员的“备注信息”,和注释不同的是:注释是给“人”看的,而特性是给“编译器”看的 * [OperationContract] 这个特性告诉编译器,该成员(指Function1)是一个操作契约,这样在编程的时候,用反射机制可以判断出,哪些类型标记过服务契约,哪些成员标记过操作契约,在WCF中会找到这些做服务 * [OperationContract] 他这句会执行什么代码,在WCF中,会找出所有标记OperationContract特性的成员作为服务 */ [OperationContract] string Behavior(); } }
namespace com._80community.unittest.Demo { public class Dog : IAnimal { public string Behavior() { return "我白天睡觉,晚上看家。"; } } }
namespace com._80community.unittest.Demo { public class Cat : IAnimal { public string Behavior() { return "我白天睡觉,晚上出来抓老鼠。"; } } }
namespace com._80community.unittest.Demo { public class Mouse : IAnimal { public string Behavior() { return "我白天睡觉,晚上出来找粮食吃。"; } } }
[TestMethod] public void Test9() { Dog dog = new Dog(); var a = dog.Behavior();//我白天睡觉,晚上看家。 Cat cat = new Cat(); var b = cat.Behavior();//我白天睡觉,晚上出来抓老鼠。 Mouse mouse = new Mouse(); var c = mouse.Behavior();//我白天睡觉,晚上出来找粮食吃。 // }