示例#1
0
        static IType CreateCodeBesideClass(DocumentInfo info, DocumentReferenceManager refman)
        {
            var v = new MemberListVisitor(info.AspNetDocument, refman);

            info.AspNetDocument.RootNode.AcceptVisit(v);
            var t = new DomType(info.ClassName);

            t.CompilationUnit = new CompilationUnit(info.AspNetDocument.FileName);
            var dom      = refman.TypeCtx.ProjectDom;
            var baseType = dom.GetType(info.BaseType);

            foreach (var m in CodeBehind.GetDesignerMembers(v.Members.Values, baseType, null, dom, null))
            {
                t.Add(new DomField(m.Name, Modifiers.Protected, m.Location, new DomReturnType(m.Type)));
            }
            return(t);
        }
示例#2
0
        static IUnresolvedTypeDefinition CreateCodeBesideClass(DocumentInfo info, DocumentReferenceManager refman)
        {
            var v = new MemberListVisitor(refman);

            info.AspNetDocument.RootNode.AcceptVisit(v);
            var t        = new ICSharpCode.NRefactory.TypeSystem.Implementation.DefaultUnresolvedTypeDefinition(info.ClassName);
            var dom      = refman.TypeCtx.Compilation;
            var baseType = ReflectionHelper.ParseReflectionName(info.BaseType).Resolve(dom);

            foreach (var m in CodeBehind.GetDesignerMembers(v.Members.Values, baseType, null))
            {
                t.Members.Add(new ICSharpCode.NRefactory.TypeSystem.Implementation.DefaultUnresolvedField(t, m.Name)
                {
                    Accessibility = Accessibility.Protected,
                    ReturnType    = m.Type.ToTypeReference()
                });
            }
            return(t);
        }