• WCF入门(8)


    前言

    昨天买的usb无线路由到了,笔记本又可以愉快的上网了。

    下午去办市民卡,被告知说“本人医保现在停保,要等继续缴才行”,白公交坐了那么远的路。

    需要视频的进群,378190436。

    第八集 Different ways of associating known types in wcf (WCF中不同的Know Types 之间的相互关系)

     今天第八集,比较简单,讲的WCF中的几种不同的KnowType Attribute。总共有四种。

    这是第一种,用在父类上面,这种是全局的,也就是说任何调用Employee的地方都知道Employee有FullTime 和 PartTime两个子类。

        [KnownType(typeof(FullTimeEmployee))]
        [KnownType(typeof(PartTimeEmployee))]
        [DataContract]
        public class Employee
        {
            [DataMember(Order = 1)]
            public int Id { get; set; }
            [DataMember(Order = 2)]
            public String Name { get; set; }
            [DataMember(Order = 3)]
            public bool Gender { get; set; }
            [DataMember(Order = 4)]
            public DateTime DateOfBirth { get; set; }
            [DataMember(Order = 5)]
            public EmployeeType EmployeeType { get; set; }
        }
    View Code

    这是第二种,用来修饰ServiceContract,他是针对当前的ServiceContract,也就是说假如还有其他的服务,如果没有特殊特别指定,是不晓得Employee的子类的。

     1     [ServiceKnownType(typeof(PartTimeEmployee))]
     2     [ServiceKnownType(typeof(FullTimeEmployee))]
     3     [ServiceContract]
     4     public interface IEmployeeService
     5     {
     6         [OperationContract]
     7         Employee GetEmployee(int id);
     8         [OperationContract]
     9         void SaveEmployee(Employee emp);
    10     }
    View Code

    还是这种,但他用来可以用来修饰OperationContract,当用来修改Operation的时候,他只对当前Operation有效,也就是说Get方法知道两个子类,而Save方法不知道。

    1     public interface IEmployeeService
    2     {
    3         [ServiceKnownType(typeof(FullTimeEmployee))]
    4         [ServiceKnownType(typeof(PartTimeEmployee))]
    5         [OperationContract]
    6         Employee GetEmployee(int id);
    7         [OperationContract]
    8         void SaveEmployee(Employee emp);
    9     }
    View Code
    • 配置文件

    最后一种是写配置文件的。效果和定义在父类上是一样的,都是Global。就不写了,有兴趣的可以看视频。第八集很简单。

    ThankYou!

  • 相关阅读:
    GridView里的数据转化为datatable进行数据传输
    asp.net给asp:button同时添加服务器事件和JS事件
    .msi文件安装出现2503、2502错误
    初识IO流——创建目录和文件
    WinRAR注册
    Ubuntu14.04.1 阿里apt源
    Pycharm远程调试
    Couldn't create temporary file to work with
    Ubuntu14中supervisor的安装及配置
    Ubuntu14.04安装pip及配置
  • 原文地址:https://www.cnblogs.com/sheldon-lou/p/4248985.html
Copyright © 2020-2023  润新知