本文整理汇总了C#中System.Reflection.AssemblyName.IsMatch方法的典型用法代码示例。如果您正苦于以下问题:C# AssemblyName.IsMatch方法的具体用法?C# AssemblyName.IsMatch怎么用?C# AssemblyName.IsMatch使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Reflection.AssemblyName
的用法示例。
在下文中一共展示了AssemblyName.IsMatch方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: FindAssembly
private FileInfo FindAssembly(AssemblyName name, IEnumerable<string> directories)
{
var files = new List<string>();
foreach (var dir in directories)
{
files.AddRange(m_FileSystem.Directory.GetFiles(dir, "*.dll", SearchOption.AllDirectories));
}
// Store all the assemblies we can find that match the name, culture and public key. If a public key is specified
// then there should be at most 1 of those assemblies because it should be an exact match. If however no public key
// is specified then potentially any assembly with an equal or greater version number could be loaded.
IDictionary<AssemblyName, string> assemblyNameToFileMap = new Dictionary<AssemblyName, string>();
foreach (var filePath in files)
{
AssemblyName assemblyName = null;
try
{
assemblyName = AssemblyName.GetAssemblyName(filePath);
}
catch (ArgumentException)
{
// Not a valid assembly name
}
catch (SecurityException)
{
// No access
}
catch (BadImageFormatException)
{
// Not a valid assembly
}
catch (FileLoadException)
{
// Couldn't load file
}
if (assemblyName != null)
{
if (name.IsMatch(assemblyName))
{
assemblyNameToFileMap.Add(assemblyName, filePath);
}
}
}
var file = assemblyNameToFileMap.OrderByDescending(p => p.Key.Version).Select(p => p.Value).FirstOrDefault();
return (!string.IsNullOrWhiteSpace(file)) ? new FileInfo(file) : null;
}