/// <summary>
/// 得到给定一个IMessageDetail的实现类的实例的工厂
/// </summary>
/// <param name="className">IMessageDetail的实现类的类名,此类名包括完整的域名空间</param>
/// <returns>IMessageDetail的一个实例</returns>
public static IMessageDetail CreateMessageDetailHandler(string className)
{
try
{
string assemblyName = MessageConfig.GetAssemblyLocation() + "/" + GetAssemblyName(className);
// load assembly
Assembly targetAssembly = null;
if(assemblyName != string.Empty)
{
targetAssembly = Assembly.LoadFrom(assemblyName + ".dll");
}
// create AMessageMgr insatance
if(className == null || className == string.Empty)
{
return null;
}
else
{
// get class type
System.Type type;
try
{
if(targetAssembly == null)
{
type = System.Type.GetType(className);
}
else
{
type = targetAssembly.GetType(className);
}
}
catch
{
type = null;
}
// get AMessageMgr instance
if(type == null)
{
return null;
}
else
{
object messageHandler = System.Activator.CreateInstance(type);
return (IMessageDetail)messageHandler;
}
}
}
catch
{
return null;
}
}