C# System.Runtime.Remoting.RemotingException调用外部程序集的方法

C# System.Runtime.Remoting.RemotingException调用外部程序集的方法,c#,reflection,remoting,C#,Reflection,Remoting,我第一次玩反射和远程处理。我在机器上有一个程序集,我对它的源代码有只读访问权限,我想直接调用它的一个方法。这是我的代码: AppDomain NewDomain = AppDomain.CreateDomain("NewDomain"); try { var objectHandle = NewDomain.CreateInstanceFrom(@"C:\Program Files (x86)\xxx\ExistingAss

我第一次玩反射和远程处理。我在机器上有一个程序集,我对它的源代码有只读访问权限,我想直接调用它的一个方法。这是我的代码:

        AppDomain NewDomain = AppDomain.CreateDomain("NewDomain");
        try
        {
            var objectHandle = NewDomain.CreateInstanceFrom(@"C:\Program Files (x86)\xxx\ExistingAssembly.dll", "RemoteNamespace.RemoteClass");
            var localObject = (RemoteNamespace.ISharedInterface)objectHandle.Unwrap();
            File.Copy(localObject.StrTargetMethod(arg1),
                Path.Combine(logDir, logfile), true);
        }
        finally
        {
            AppDomain.Unload(NewDomain);
        }
try
块的第一行,
CreateInstanceFrom
方法抛出一个
未处理的异常:System.Runtime.Remoting.RemotingException:无法加载类型“RemoteNamespace.RemoteClass,RemoteNamespace,Version=1.2.0.8,Culture=neutral,PublicKeyToken=xxxxxxxxx”

编辑:我现在正在尝试:

var assembly = Assembly.LoadFrom(@"C:\Program Files (x86)\xxx\ExistingAssembly.dll");
var localObject = (ISharedInterface)assembly.CreateInstance("RemoteNamespace.RemoteClass");
但是我在
assembly.CreateInstance()
上遇到了相同的错误。我将
assembly.GetTypes()
记录到屏幕上,因此我知道程序集正在正确加载,并且我要查找的类在打印的列表中

编辑2:在App.config中将程序集位置添加为
块后,使用
Activator.CreateInstance(assembly.FullName,“RemoteNamespace.RemoteClass”)
工作。我不知道
assembly.CreateInstance()
有什么问题。对于遇到此问题的任何其他人,App.config中需要的XML为:

<runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
      <assemblyIdentity name="[AssemblyNameWithoutFileExtension]" publicKeyToken="[AssemblyPublicKeyToken]" culture="neutral" />
      <codeBase version="[AssemblyVersionNumber]" href="file:///[FullAssemblyFilePath]" />
    </dependentAssembly>
  </assemblyBinding>
</runtime>