微软IOC容器Unity简单代码示例3-基于约定的自动注册机制详解编程语言

@(编程)

Unity在3.0之后,支持基于约定的自动注册机制Registration By Convention,本文简单介绍如何配置。

1. 通过Nuget下载Unity

版本号如下:

<?xml version="1.0" encoding="utf-8"?> 
<packages> 
  <package id="CommonServiceLocator" version="1.3" targetFramework="net45" /> 
  <package id="Unity" version="4.0.1" targetFramework="net45" /> 
</packages> 

2. 接口代码

 
namespace UnityDemo 
{ 
    public interface ILogIn 
    { 
        void Login(); 
    } 
} 
 
 
 
namespace UnityDemo 
{ 
    public interface IUser 
    { 
        string GetUserName(); 
    } 
} 
 

3. 实现代码

using Microsoft.Practices.Unity; 
using System; 
 
namespace UnityDemo 
{ 
    public class LogInImpl : ILogIn 
    { 
        [Dependency]   
        public IUser userOper { get; set; } 
        public void Login() 
        { 
            Console.WriteLine(this.userOper.GetUserName()); 
        } 
    } 
} 
  
namespace UnityDemo 
{ 
   public  class UserImpl:IUser 
    { 
        public string GetUserName() 
        { 
            return "keke"; 
        } 
    } 
} 
 

4. 调用代码

using Microsoft.Practices.Unity; 
using System; 
namespace UnityDemo 
{ 
    class Program 
    { 
        static void Main(string[] args) 
        { 
            IUnityContainer container = new UnityContainer(); 
            container.RegisterTypes(AllClasses.FromLoadedAssemblies(), WithMappings.FromAllInterfacesInSameAssembly, WithName.Default, WithLifetime.PerResolve); 
            var bll = container.Resolve<ILogIn>(); 
            bll.Login(); 
            Console.Read(); 
        } 
    } 
} 
 

5. 注意

所有的接口与类一定要定义为public的,否则是无法注册的,我就在这个上面浪费了一些时间。

6. 参考文章

Unity3.0基于约定的自动注册机制
Unity Configuration – Registration by Convention

原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/20960.html

(0)
上一篇 2021年7月19日 23:54
下一篇 2021年7月19日 23:54

相关推荐

发表回复

登录后才能评论