void Initialize() { initialized = true; tags.Clear(); foreach (IStringTagProvider provider in StringParserService.GetProviders()) { foreach (object obj in objects) { if (obj is StringTagModel) { continue; } foreach (StringTagDescription tag in provider.GetTags(obj.GetType())) { if (!tags.ContainsKey(tag.Name)) { tag.SetSource(provider, obj); tags.Add(tag.Name, tag); } } } foreach (StringTagDescription tag in provider.GetTags(null)) { if (!tags.ContainsKey(tag.Name)) { tag.SetSource(provider, null); tags.Add(tag.Name, tag); } } } foreach (object obj in objects) { StringTagModel source = obj as StringTagModel; if (source == null) { continue; } foreach (var tag in source.Tags.Values) { if (!tags.ContainsKey(tag.Name)) { tags.Add(tag.Name, tag); } } } }
void Initialize() { initialized = true; tags.Clear(); foreach (Type type in types) { var localTags = new List <StringTagDescription> (); foreach (IStringTagProvider provider in StringParserService.GetProviders()) { foreach (StringTagDescription tag in provider.GetTags(type)) { if (tagNames.Add(tag.Name)) { localTags.Add(tag); } } foreach (StringTagDescription tag in provider.GetTags(null)) { if (tagNames.Add(tag.Name)) { localTags.Add(tag); } } } tags.Add(localTags); } foreach (StringTagModelDescription model in models) { foreach (var modelTags in model.GetTagsGrouped()) { var localTags = new List <StringTagDescription> (); foreach (var tag in modelTags) { if (tagNames.Add(tag.Name)) { localTags.Add(tag); } } tags.Add(localTags); } } }