zoukankan      html  css  js  c++  java
  • 【AutoMapper基础】简单示例--Flattening

    【Flattening】

    One of the common usages of object-object mapping is to take a complex object model and flatten it to a simpler model. 

    【类图】

    【Code】

    CPU:

    public class CPU
        {
            public string ProducerName { get; set; }
            public string ModelName { get; set; }
            public double MainFrequency { get; set; }
        }
    View Code

    InternalMemory:

    public class InternalMemory
        {
            public string ProducerName { get; set; }
            public string ModelName { get; set; }
            public double Size { get; set; }
            public double Frequency { get; set; }
        }
    View Code

    Monitor:

    public class Monitor
        {
            public string ProducerName { get; set; }
            public string ModelName { get; set; }
            public double Size { get; set; }
        }
    View Code

    Computer:

    public class Computer
        {
            public string Name { get; set; }
            public double Price { get; set; }
            public DateTime ProduceDate { get; set; }
            public CPU CPU { get; set; }
            public InternalMemory InternalMemory { get; set; }
            public Monitor Monitor { get; set; }
        }
    View Code

    Program:

    class Program
        {
            static void Main(string[] args)
            {
                Computer computer = new Computer()
                {
                    Name = "联想Y450",
                    Price = 5199.00,
                    ProduceDate = new DateTime(2009, 10, 10),
                    CPU = new CPU()
                    {
                        MainFrequency = 2.2,
                        ModelName = "Core T6600",
                        ProducerName = "Intel"
                    },
                    InternalMemory = new InternalMemory()
                    {
                        Frequency = 1333,
                        ModelName = "DDR3",
                        ProducerName = "尔必达",
                        Size = 4.0
                    },
                    Monitor = new Monitor()
                    {
                        ProducerName = "LG",
                        Size = 14.0
                    }
                };
    
                AutoMapper.Mapper.CreateMap<Computer, ComputerMainInfo>();
                ComputerMainInfo computerMainInfo = AutoMapper.Mapper.Map<Computer, ComputerMainInfo>(computer);
    
                Console.WriteLine(computerMainInfo.CPUModelName);
                Console.Read();
            }
        }
    View Code

    AutoMapper自动根据名称搜索完成映射,这就从复杂的Computer映射到简化的ComputerMainInfo。

  • 相关阅读:
    OCP-1Z0-051-V9.02-118题
    VC++ 获取临时目录
    VC++ UUID/GUID
    MFC无边框的窗体实现用鼠标拖动窗体边缘实现窗体大小变化
    Win32 SDK程序中拖动Thin边框窗口来改变窗口大小
    HTML5 App实战(7):连连看
    MFC对话框Border类型(None、Thin、Resizing、Dialog Frame)对应的部分属性
    项目报错七
    Linux下如何查看高CPU占用率线程
    项目报错六
  • 原文地址:https://www.cnblogs.com/fb-boy/p/3480602.html
Copyright © 2011-2022 走看看