gpt4 book ai didi

c# - 我可以指定一个 dll 以在 Powershell 中使用 New-Object 吗?

转载 作者:太空宇宙 更新时间:2023-11-03 20:58:30 24 4
gpt4 key购买 nike

我有一个场景,我需要 New-Object 一个类型,但有多个类型具有相同的名称和命名空间。我找不到 New-Object 如何决定在多个位置存在时从哪个 dll 创建类型。可以指定吗?理想情况下,我想将 dll 名称传递给 New-Object,但似乎没有这个选项。

最佳答案

指定完整的 assembly-qualified type name :

New-Object -TypeName 'MyType, AssemblyName, Version=1.0.0.0, Culture=neutral, PublicKeyToken=abcdef0123456789'

这也适用于类型文字:

[MyType,AssemblyName,Version=1.0.0.0,Culture=neutral,PublicKeyToken=abcdef0123456789]::new()

您可以使用 AssemblyName.GetAssemblyName() 从磁盘轻松获取程序集的完全限定名称:

# Load the assembly
$AssemblyPath = '.\MyAssembly.dll'
Add-Type -Path $AssemblyPath

# Fetch the assembly's name
$AssemblyName = [System.Reflection.AssemblyName]::GetAssemblyName((Resolve-Path $AssemblyPath).Path)

# Construct full type name
$TypeName = 'MyType'
$AssemblyQualifiedTypeName = $TypeName,$AssemblyName -join ', '

# Instantiate and object of this type
$MyObject = New-Object -TypeName $TypeName
#or
$MyObject = ($TypeName -as [Type])::new()

关于c# - 我可以指定一个 dll 以在 Powershell 中使用 New-Object 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48010715/

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