для Singleton-ов пришлось немного доделать код (ниже)
Только вот у меня сомнения закрались, а правильно ли я "подключаю" библиотеки??? Это вообще так делается или есть какой-то более верный способ?
[STAThread]
static void Main(string[] args)
{
...
// тут, естественно, цикл будет чтобы подключить все библиотеки.....
// *****************************************************************
// читаем интерфейс библиотеки
foreach(string className in classNames)
{
try
{
domain.CreateInstanceFrom(urlDLL, className);
break;
}
catch
{
if(sigletonLoad(urlDLL, className)) break;
}
}
// *****************************************************************
...
}
/// <summary>
///
/// </summary>
/// <param name="url"></param>
/// <param name="className"></param>
/// <returns></returns>
static bool sigletonLoad(string url, string className)
{
bool success = false;
try
{
Assembly assemblyContent = Assembly.LoadFrom(url);
Type type = assemblyContent.GetType(className);
MethodInfo[] methods = type.GetMethods();
foreach(MethodInfo method in methods)
{
try
{
if(method.Name.ToLower().EndsWith("getinstance") && method.IsStatic)
{
method.Invoke(null, null);
success = true;
break;
}
}
catch{}
}
}
catch{}
return success;
}
...