[英]MissingMethodException on Activator.CreateInstance
我正在尝试创建一个外国 DLL 的实例。 不幸的是,我收到错误消息“MissingMethodException”。 命令 Activator.CreateInstance 会产生此错误。
创作:
Assembly lAssembly =
Assembly.Load(File.ReadAllBytes(@"C:\Siemens.Engineering.dll"));
Type lType = lAssembly.GetType("Siemens.Engineering.TiaPortal", true, true);
return (dynamic)Activator.CreateInstance(type: lType,
args: new object[] {
Siemens.Engineering.TiaPortalMode.WithoutUserInterface
});
dll(简称)的定义:
namespace Siemens.Engineering {
//
// Zusammenfassung:
// TIAPortal.
[DebuggerNonUserCode]
[SecuritySafeCritical]
public sealed class TiaPortal : IApplicationEntryPoint,
IInternalApplicationAccess,
IInternalObjectAccess,
IInternalInstanceAccess,
IInternalBaseAccess,
IEngineeringRoot,
IEngineeringObject,
IEngineeringCompositionOrObject,
IEngineeringInstance,
IEngineeringServiceProvider,
IServiceProvider,
IEquatable<object>,
IDisposable
{
//
// Zusammenfassung:
// Initializes a new instance of the
// Siemens.Engineering.TiaPortal class.
//
// Parameter:
// tiaPortalMode:
// TIA-Portal will start in this mode.
[SecuritySafeCritical]
public TiaPortal(TiaPortalMode tiaPortalMode =
TiaPortalMode.WithoutUserInterface);
}
}
我不知道我在打这个电话时做错了什么。 由于构造函数有一个可选参数,它应该可以带参数和不带参数调用。 但是两种变体都会产生相同的错误。 可以正确加载程序集 (lAssembly) 以及类型 (lType)。
有什么建议吗?
我发现了问题。 寻址的 DLL 正在寻找硬编码路径。 如果这不存在,则无法实例化。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.