TDN*_*TDN 3 c# powershell enums add-type
我在 PowerShell 中创建了下面的枚举。但是,如果枚举名称中有一个点(例如“Name.A”),则 Add-Type 将返回错误。我该怎么办?我不想删除“Name.A”中的点。
$TypeEnum = "
namespace Types {
public enum Id {
Name.A = 1,
NameB = 2,
NameC = 3
}
}"
Add-Type -TypeDefinition $TypeEnum -Language CSharpVersion3
([Types.Id]::'Name.A').value__
Run Code Online (Sandbox Code Playgroud)
这是我得到的错误:
添加类型:c:\Users\User1\AppData\Local\Temp\ab0z5i1y.0.cs(4):}预期c:\Users\User1\AppData\Local\Temp\ab0z5i1y.0.cs(3):
公共枚举 Id { c:\Users\User1\AppData\Local\Temp\ab0z5i1y.0.cs(4) : >>> Name.A = 1,c:\Users\User1\AppData\Local\Temp\ab0z5i1y。 0.cs(5) :
NameB = 2,在行:10 字符:1 + Add-Type -TypeDefinition $TypeEnum -Language CSharpVersion3 + ~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + 类别信息:无效数据:(c:\Users\ User1...513: } 预期:CompilerError) [Add-Type], Exception + ExcellentQualifiedErrorId : SOURCE_CODE_ERROR,Microsoft.PowerShell.Commands.AddTypeCommand
Add-Type : c:\Users\User1\AppData\Local\Temp\ab0z5i1y.0 .cs(8) : 类型或命名空间定义,或预期的文件结尾 c:\Users\User1\AppData\Local\Temp\ab0z5i1y.0.cs(7) : }
c:\Users\User1\AppData\ Local\Temp\ab0z5i1y.0.cs(8) : >>> } 在行:10 字符:1 + Add-Type -TypeDefinition $TypeEnum -Language CSharpVersion3 + ~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + 类别信息:无效数据: (c:\Users\User1...f 文件预期:CompilerError) [Add-Type],异常 + ExcellentQualifiedErrorId:SOURCE_CODE_ERROR,Microsoft.PowerShell.Commands.AddTypeCommand
Add-Type:无法添加类型。出现编译错误。在行:10 字符:1 + Add-Type -TypeDefinition $TypeEnum -Language CSharpVersion3 + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidData: (:) [添加类型],InvalidOperationException + ExcellentQualifiedErrorId : COMPILER_ERRORS,Microsoft。 PowerShell.Commands.AddTypeCommand 无法找到类型 [Types.Id]:确保加载包含此类型的程序集。在第 12 行 char:1 + ([Types.Id]::'Name.A').value__ + ~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~ + CategoryInfo : InvalidOperation: (Types.Id:TypeName) [], RuntimeException + FullQualifiedErrorId : TypeNotFound
这是 .Net 以及 PowerShell 和 C# 的限制。枚举成员名称中不能包含标点符号。
因此,简短的答案是,如果不做一些 hacky 的事情,你就无法完成这项工作(你必须将 name.A 更改为 name[CharacterCode]A 或添加描述,或者其他一些你真的不应该做的奇怪的事情)
| 归档时间: |
|
| 查看次数: |
697 次 |
| 最近记录: |