您的位置:首页 > 移动开发 > Unity3D

在ASP.NET 中使用 Unity Application Block – 示例(提供代码下载)

2008-05-30 14:53 489 查看
在ASP.NET 中使用 Unity Application Block – 示例(提供代码下载)

下面的示例演示在ASP.NET Web Application 中使用 Unity 依赖注入容器。下载ASP.NetWeb Application源码!!!

具体步骤如下:

1. 创建IUnityContainer 接口文件 – IUnity.cs

using System;

using System.Collections.Generic;

using System.Text;

using Microsoft.Practices.Unity;

namespace UnityASPNET

{

interface IUnity

{

IUnityContainer Container { get; }

}

}

2. 基于演示的需要,创建ILogger接口 – ILogger.cs

namespace Microsoft.Practices.Unity.Tests.TestObjects

{

// A dummy interface to support testing type mapping

interface ILogger

{

}

}

3. 创建ILooger接口的实现类 WebLogger.cs

namespace Microsoft.Practices.Unity.Tests.TestObjects

{

// A dummy class to support testing type mapping

public class WebLogger : ILogger

{

}

}

4. 创建 ASP.NET Global.ascx

using System;

using System.Data;

using System.Configuration;

using System.Collections;

using System.Web;

using System.Web.Security;

using System.Web.SessionState;

using Microsoft.Practices.Unity;

using Microsoft.Practices.Unity.Tests.TestObjects;

namespace UnityASPNET

{

public class Global : System.Web.HttpApplication, IUnity

{

private static UnityContainer _container; // private 静态成员变量

public static IUnityContainer Container // public静态成员变量Container

{

get { return _container; }

}


IUnityContainer IUnity.Container // 实现 IUnity 接口,返回Continer对象

{

get { return Container; }

}


protected void Application_Start(object sender, EventArgs e)

{

Initialize();

}

private static void Initialize()

{

// create the container at the application initialization phase.

if (_container == null)

_container = new UnityContainer(); //
初始化静态成员变量_container

// register type 注册ILogger 映射

_container.RegisterType<ILogger, WebLogger>();


}

}

}

5. 在ASP.NET 页面调用 IUnityContainer 对象

protected void Page_Load(object sender, EventArgs e)

{

IUnity UnityCtx = Context.ApplicationInstance as IUnity;

// This should find the WebLogger when trying resolve the ILogger

ILogger logger = UnityCtx.Container.Resolve<ILogger>();

Label1.Text = "Found following ILogger from unity container : "+logger.GetType().FullName.ToString();

}

下载ASP.NET Web Application源码!!!



Source URL:

http://www.codeplex.com/unitycontributions/Thread/View.aspx?ThreadId=27698 by alexanderQX.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐