[英]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.