nuity 学习之路 二、配置

一、接口及实现类

namespace MyUnity
{
    public interface IComputer
    {
        double GetResult(double numA, double numB);
    }

    public class MulOperation : IComputer
    {
        public double GetResult(double numA, double numB)
        {
            return numA - numB;
        }
    }

    public class AddOpertaion : IComputer
    {
        public double GetResult(double numA, double numB)
        {
            return numA + numB;
        }
    }
}


 

二、配置文件

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="unity"
          type="Microsoft.Practices.Unity.Configuration.UnityConfigurationSection, 
            Microsoft.Practices.Unity.Configuration"/>
  </configSections>
  <unity xmlns="http://schemas.microsoft.com/practices/2010/unity">
    <alias alias="InComputer" type="MyUnity.IComputer,MyUnity" />  
    <alias alias="Computer" type="MyUnity.MulOperation,MyUnity" />

    <container name="containerOne">
      <register type="InComputer"  mapTo="Computer" />

        <register type="MyUnity.MyClass,MyUnity"   mapTo="MyUnity.MyClass,MyUnity">
        <!--<property name="computer" dependencyType="MyUnity.MulOperation,MyUnity"/>-->
          <constructor>

            <param name="count" value="2"/>

          </constructor>

        </register>
    </container>
  </unity>
</configuration>


 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Practices.Unity;
using Microsoft.Practices.Unity.Configuration;
using System.Configuration;
namespace MyUnity
{
    class Program
    {

        static void Main(string[] args)
        {
            IUnityContainer unityContainer = new UnityContainer();
            unityContainer.LoadConfiguration("containerOne");   
            Console.WriteLine(unityContainer.Resolve<MyClass>().GetResult(2, 3));

        }
    }
    public class MyClass
    {
        [Dependency]  //注入属性
        public IComputer computer { get; set; }
        private int num;
        public MyClass(int count)  //构造函数注入
        {
            this.num = count;
        }
        public double GetResult(double numA, double numB)
        {
            return computer.GetResult(numA + num, numB);
        }

    }
}


 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值