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

UnityIocHelper 帮助类

2018-01-07 21:23 204 查看
public class UnityIocHelper : IServiceProvider
{
private readonly IUnityContainer _container;

private static readonly UnityIocHelper dbinstance = new UnityIocHelper("DBcontainer");

private UnityIocHelper(string containerName)
{
UnityConfigurationSection section = (UnityConfigurationSection)ConfigurationManager.GetSection("unity");
_container = new UnityContainer();
section.Configure(_container, containerName);
//section.Configure(_container);
}

public static string GetmapToByName(string containerName,string itype, string name = "")
{
try
{
UnityConfigurationSection section = (UnityConfigurationSection)ConfigurationManager.GetSection("unity");
var _Containers = section.Containers;
foreach (var _Container in _Containers)
{
if (_Container.Name == containerName)
{
var _Registrations = _Container.Registrations;
foreach (var _Registration in _Registrations)
{
if (name == "" && string.IsNullOrEmpty(_Registration.Name) && _Registration.TypeName == itype)
{
return _Registration.MapToName;
}
}
break;
}
}
return "";
}
catch
{
throw;
}

}

public static UnityIocHelper DBInstance
{
get { return dbinstance; }
}

public object GetService(Type serviceType)
{
return _container.Resolve(serviceType);
}
public T GetService<T>()
{
return _container.Resolve<T>();
}
public T GetService<T>(params ParameterOverride[] obj)
{
return _container.Resolve<T>(obj);
}
public T GetService<T>(string name, params ParameterOverride[] obj)
{
return _container.Resolve<T>(name,obj);
}
}


调用方法:

/// <summary>
/// 连接数据库
/// </summary>
/// <param name="connString">连接字符串</param>
/// <param name="DbType">数据库类型</param>
/// <returns></returns>
public static IDatabase Base(string connString, DatabaseType DbType)
{
DbHelper.DbType = DbType;
return UnityIocHelper.DBInstance.GetService<IDatabase>(new ParameterOverride(
"connString", connString), new ParameterOverride(
"DbType", DbType.ToString()));
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: