gpt4 book ai didi

exception - powershell 2 new-object "Cannot find type..."从外部库实例化 .net 类实现接口(interface)时出现异常

转载 作者:行者123 更新时间:2023-12-04 23:09:25 25 4
gpt4 key购买 nike

我发现了一个很容易重现的问题。请告知是否有任何解决方法?

有两个 .Net 库 libraryA.dll 和 libraryB.dll。每个库都有一个接口(interface)InterfaceA和InterfaceB。 ClassAA 实现 InterfaceA 并存在于 libraryA 中。 ClassAB 实现 InterfaceB 并位于同一个 libraryA 中。同理ClassBB-LibraryB-InterfaceB; ClassBA - LibraryB - InterfaceA

当实例化 ClassAA 和 ClassBB 而不是 ClassAB 或 ClassBA 时,New-Object 可以正常工作。他们总是无法实例化。

这是powershell代码

[System.Reflection.Assembly]::LoadFile(‘c:\LibraryA.dll’)
[System.Reflection.Assembly]::LoadFile(‘c:\LibraryB.dll’)

$obj1 = new-object -typeName ClassAA (IT WORKS)
$obj2 = new-object -typeName ClassBB (IT WORKS)
$obj3 = new-object -typeName ClassAB (EXCEPTION THROWN)
$obj4 = new-object -typeName ClassBA (EXCEPTION THROWN)

非常感谢,

安德烈

最佳答案

而不是 ::LoadFile , 采用:

[System.Reflection.Assembly]::LoadFrom(‘c:\LibraryA.dll’)
[System.Reflection.Assembly]::LoadFrom(‘c:\LibraryB.dll’)

当您使用 ::LoadFrom程序集将被加载到它所在目录的上下文中,同一目录中的引用程序集将自动被解析。 ::LoadFile用于加载共享标识但位于不同目录中且不保留任何加载上下文的程序集,因此不会解析引用的程序集。

关于exception - powershell 2 new-object "Cannot find type..."从外部库实例化 .net 类实现接口(interface)时出现异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4203476/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com