Пример #1
0
        public ClassWithTypeSymbol Create(ITypeSymbol classSymbol)
        {
            var @class = new ClassWithTypeSymbol(classSymbol) {Name = classSymbol.Name};

            // create readers for reading symbol members
            var symbolReaders = new SemanticTypeReaderBase[]
            {
                new PropertySymbolReader(@class),
                new MethodSymbolReader(@class),
                new EventSymbolReader(@class)
            };

            foreach (var symbolReader in symbolReaders)
                symbolReader.VisitSymbol(classSymbol);

            // search base classes until we reach System.Object where we stop
            if (classSymbol.BaseType != null && 
                classSymbol.BaseType.SpecialType != SpecialType.System_Object)
                @class.BaseClass = Create(classSymbol.BaseType);
            // add interfaces to interface list
            foreach (var @interface in classSymbol.Interfaces)
                @class.Interfaces.AddInterface(new Interface(@interface));
            return @class;
        }
Пример #2
0
 public MixinReference(string name, ClassWithTypeSymbol type)
 {
     Name = name;
     Class = type;
 }