예제 #1
0
        private AnonymousTypeTemplateSymbol CreatePlaceholderTemplate(Microsoft.CodeAnalysis.Emit.AnonymousTypeKey key)
        {
            var fields    = key.Fields.SelectAsArray(f => new AnonymousTypeField(f.Name, Location.None, (TypeSymbol)null));
            var typeDescr = new AnonymousTypeDescriptor(fields, Location.None);

            return(new AnonymousTypeTemplateSymbol(this, typeDescr));
        }
예제 #2
0
        internal IReadOnlyDictionary <Microsoft.CodeAnalysis.Emit.AnonymousTypeKey, Microsoft.CodeAnalysis.Emit.AnonymousTypeValue> GetAnonymousTypeMap()
        {
            var result    = new Dictionary <Microsoft.CodeAnalysis.Emit.AnonymousTypeKey, Microsoft.CodeAnalysis.Emit.AnonymousTypeValue>();
            var templates = GetAllCreatedTemplates();

            foreach (AnonymousTypeTemplateSymbol template in templates)
            {
                var nameAndIndex = template.NameAndIndex;
                var key          = new Microsoft.CodeAnalysis.Emit.AnonymousTypeKey(template.GetPropertyNames());
                var value        = new Microsoft.CodeAnalysis.Emit.AnonymousTypeValue(nameAndIndex.Name, nameAndIndex.Index, template);
                result.Add(key, value);
            }
            return(result);
        }