我需要在不使用 AssemblyName 的情况下解析程序集限定名称,因为我得到 System.IO.FileLoadException(程序集不可用)。
我只管理字符串而不是程序集。如果我有一个字符串,我想为 asm1 和 asm2 字符串变量获取如下字符串。
任何建议,示例代码?
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 ";
最佳答案
你可以用逗号分割,修剪字符串,然后检查每个部分的预期前缀吗?
List<string> parts = name.Split(',')
.Select(x => x.Trim())
.ToList();
string name = parts[0];
string assembly = parts.Count < 2 ? null : parts[1];
string version = parts.Count < 3 ? null : parts[2];
string culture = parts.Count < 4 ? null : parts[3];
string token = parts.Count < 5 ? null : parts[4];
if (version != null && !version.StartsWith("Version="))
{
throw new ArgumentException("Invalid version: " + version);
}
// etc
关于c# - 不使用 AssemblyName 解析程序集限定名称,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4085613/