gpt4 book ai didi

c# - 不使用 AssemblyName 解析程序集限定名

转载 作者:太空狗 更新时间:2023-10-30 00:28:05 26 4
gpt4 key购买 nike

我需要在不使用 AssemblyName 的情况下解析程序集限定名称,因为我得到 System.IO.FileLoadException(程序集不可用)。

我只管理字符串,不管理程序集。如果我有一个字符串,我想为 asm1 和 asm2 字符串变量获取如下所示的字符串。

FullName = "CalidadCodigo.ParserSQL.Reglas.AnalisisSintactico"

Assembly ="CalidadCodigo.ParserSQL.AnalisisSintactico"

Version = "Version=1.0.0.0"

Culture = "Culture=neutral"

Public token = "PublicKeyToken=9744987c0853bf9e"

任何建议,示例代码?

var asm1 = "CalidadCodigo.ParserSQL.Reglas.AnalisisSintactico,CalidadCodigo.ParserSQL.AnalisisSintactico, Version=1.0.0.0, Culture=neutral, PublicKeyToken=9744987c0853bf9e";


var asm2 = "CalidadCodigo.ParserSQL.Reglas.AnalisisSintactico, CalidadCodigo.ParserSQL.AnalisisSintactico , Version=1.0.0.0 , Culture=neutral, PublicKeyToken=9744987c0853bf9e ";

threw exception: System.IO.FileLoadException: El nombre de ensamblado o el código base dado no es válido. (Excepción de HRESULT: 0x80131047).

System.Reflection.AssemblyName.nInit(Assembly& assembly, Boolean forIntrospection, Boolean raiseResolveEvent) System.Reflection.AssemblyName.nInit() System.Reflection.AssemblyName..ctor(String assemblyName)

最佳答案

Jon 的回答不包含数组类型,数组类型可能在类型名称中有一个逗号,如“System.String[,],mscorlib,...” - 参见 http://msdn.microsoft.com/en-us/library/yfsftwz6.aspx了解详情。

这里更好:

int index = -1;
int bcount = 0;
for (int i = 0; i < aqtn.Length; ++ i)
{
if (aqtn[i] == '[')
++bcount;
else if (aqtn[i] == ']')
--bcount;
else if (bcount == 0 && aqtn[i] == ',')
{
index = i;
break;
}
}
string typeName = aqtn.Substring(0, index);
var assemblyName = new System.Reflection.AssemblyName(aqtn.Substring(index + 1));

关于c# - 不使用 AssemblyName 解析程序集限定名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4085613/

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