我的运行时错误如下:
无法加载文件或程序集“ClassLibrary1,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null”或其中一个依赖项。
系统找不到指定的文件 “:”ClassLibrary1,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null
static void Main(string[] args)
{
var path = @"D:\Temp\ClassLibrary1.dll";
AppDomain other = AppDomain.CreateDomain("other");
Type myType = typeof(AssemblyLoader);
AssemblyLoader loader = (AssemblyLoader)other.CreateInstanceAndUnwrap(myType.Assembly.FullName, myType.FullName);
loader.LoadAssembly(path);
string[] types = loader.GetTypeNames();
var ts = loader.GetTypes();
}
AssemblyLoader就像
public class AssemblyLoader:MarshalByRefObject
{
private Assembly assembly;
private string assemblyName;
public AssemblyLoader()
{
}
public void LoadAssembly(string path)
{
assembly = Assembly.Load(File.ReadAllBytes(path));
assemblyName = assembly.FullName;
}
public Type[] GetTypes()
{
var types = assembly.GetExportedTypes();
List<object> objs = new List<object>();
types.ToList().ForEach(s => objs.Add(CreateInstance(s.Name)));
return objs.Select(s => s.GetType()).ToArray();
}
public string[] GetTypeNames()
{
return Array.ConvertAll<Type, string>(assembly.GetExportedTypes(), x => x.FullName);
}
public object CreateInstance(string typeName)
{
return Activator.CreateInstance(assemblyName, typeName).Unwrap();
}
public override object InitializeLifetimeService()
{
return null;
}
}