예제 #1
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);
        }
        static IUnresolvedTypeDefinition CreateCodeBesideClass(DocumentInfo info, WebFormsTypeContext refman)
        {
            var memberList = new WebFormsMemberListBuilder(refman, info.AspNetDocument.XDocument);

            memberList.Build();
            var t        = new ICSharpCode.NRefactory.TypeSystem.Implementation.DefaultUnresolvedTypeDefinition(info.ClassName);
            var dom      = refman.Compilation;
            var baseType = ReflectionHelper.ParseReflectionName(info.BaseType).Resolve(dom);

            foreach (var m in WebFormsCodeBehind.GetDesignerMembers(memberList.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);
        }