public CachedVsInfo(AggregateCatalog catalog, List<Type> packages) { Catalog = catalog; Packages = packages; foreach (var package in Packages) { var attrs = package.GetCustomAttributes(typeof(ProvideLanguageServiceAttribute), false); foreach (ProvideLanguageServiceAttribute attr in attrs) { foreach (var type in package.Assembly.GetTypes()) { if (type.GUID == attr.LanguageServiceSid) { var info = new LanguageServiceInfo(attr); LangServicesByGuid[attr.LanguageServiceSid] = info; LangServicesByName[attr.LanguageName] = info; break; } } } var extensions = package.GetCustomAttributes(typeof(ProvideLanguageExtensionAttribute), false); foreach (ProvideLanguageExtensionAttribute attr in extensions) { LanguageServiceInfo info; if (LangServicesByGuid.TryGetValue(attr.LanguageService, out info)) { _languageNamesByExtension[attr.Extension] = info.Attribute.LanguageName; } } } }
public CachedVsInfo(ComposableCatalog catalog, List <Type> packages) { Catalog = catalog; Packages = packages; foreach (var package in Packages) { var attrs = package.GetCustomAttributes(typeof(ProvideLanguageServiceAttribute), false); foreach (ProvideLanguageServiceAttribute attr in attrs) { foreach (var type in package.Assembly.GetTypes()) { if (type.GUID == attr.LanguageServiceSid) { var info = new LanguageServiceInfo(attr); LangServicesByGuid[attr.LanguageServiceSid] = info; LangServicesByName[attr.LanguageName] = info; break; } } } var extensions = package.GetCustomAttributes(typeof(ProvideLanguageExtensionAttribute), false); foreach (ProvideLanguageExtensionAttribute attr in extensions) { LanguageServiceInfo info; if (LangServicesByGuid.TryGetValue(attr.LanguageService, out info)) { _languageNamesByExtension[attr.Extension] = info.Attribute.LanguageName; } } } }