新接触一个项目,前台项目采用了castle来作为IOC容器,这东东以前没接触过,但使用方法简单。
具体使用过程如下
首先写一个IocHelper类
![ContractedBlock.gif](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![ExpandedBlockStart.gif](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
using
System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Configuration;
using StructureMap;
using StructureMap.Pipeline;
namespace common
{
public class IocHelper
{
/// <summary>
/// 获取指定类型的实例化对象
/// </summary>
/// <typeparam name="T"> 类型 </typeparam>
/// <returns> 实例化对象 </returns>
public static T GetIocInstance < T > ()
{
ObjectFactory.Initialize(
x =>
{
x.For < T > ().LifecycleIs(Lifecycles.GetLifecycle(InstanceScope.PerRequest)).Use < T > ();
});
return ObjectFactory.GetInstance < T > ();
}
}
}
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Configuration;
using StructureMap;
using StructureMap.Pipeline;
namespace common
{
public class IocHelper
{
/// <summary>
/// 获取指定类型的实例化对象
/// </summary>
/// <typeparam name="T"> 类型 </typeparam>
/// <returns> 实例化对象 </returns>
public static T GetIocInstance < T > ()
{
ObjectFactory.Initialize(
x =>
{
x.For < T > ().LifecycleIs(Lifecycles.GetLifecycle(InstanceScope.PerRequest)).Use < T > ();
});
return ObjectFactory.GetInstance < T > ();
}
}
}
利用泛型方法来处理对象
然后调用的过程中直接写以下代码如:
IUserInfo_BLL bll=IocHelper.GetIocInstance<UserInfo_BLL>();
就可以使用了