/// <summary> /// Initializes a new instance of the <see cref="EngineSymbolProviderModule" /> class. /// </summary> /// <param name="module">The engine module.</param> /// <param name="xmlModule">The XML module description.</param> /// <param name="symbolProvider">The engine symbol provider.</param> public EngineSymbolProviderModule(CsDebugScript.Module module, XmlModule xmlModule, ISymbolProvider symbolProvider) { if (string.IsNullOrEmpty(xmlModule.Name)) { xmlModule.Name = module.Name; } Name = xmlModule.Name; Namespace = xmlModule.Namespace; EngineModule = module; EngineModuleProvider = symbolProvider.GetSymbolProviderModule(module); symbolsById = new DictionaryCache <uint, Symbol>(CreateSymbol); symbolsByName = new DictionaryCache <string, Symbol>(FindSymbol); }
/// <summary> /// Initializes a new instance of the <see cref="EngineSymbolProviderModule"/> class. /// </summary> /// <param name="module">The engine module.</param> /// <param name="xmlModule">The XML module description.</param> public EngineSymbolProviderModule(CsDebugScript.Module module, XmlModule xmlModule) : this(module, xmlModule, Context.SymbolProvider) { }
/// <summary> /// Finds metadata that comes from the specified module or first if not found. /// </summary> /// <param name="metadatas">The metadatas.</param> /// <param name="module">The module.</param> public static UserTypeMetadata FromModuleOrFirst(this UserTypeMetadata[] metadatas, CsDebugScript.Module module) { foreach (var metadata in metadatas) { if (metadata.ModuleName == module.Name) { return(metadata); } } return(metadatas.First()); }