コード例 #1
0
 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);
             }
         }
     }
 }
コード例 #2
0
        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);
                }
            }
        }