在开始之前,先补充一下上一篇烂文的内容。在上一篇文章中,老周检讨了 MemberAttributes 枚举的用法,老周此前误以为该枚举不能进行按位操作,后来发现是可以的。不过啊,MemberAttributes 枚举有些情况下不那么好弄,最典型的就是要生成抽象类的时候,反正老周试了很久,用MemberAttributes枚举不能顺利生成抽象类。

这时候,老周想到了 TypeAttributes,然后就试了一下。

大数据培训,云培训,数据挖掘培训,云计算培训,高端软件开发培训,项目经理培训

            CodeTypeDeclaration t = new CodeTypeDeclaration("MyClass");
            t.TypeAttributes = System.Reflection.TypeAttributes.Abstract;

            CodeMemberProperty pry = new CodeMemberProperty();
            pry.Name = "A";
            pry.Attributes = MemberAttributes.Abstract | MemberAttributes.Public;
            pry.Type = new CodeTypeReference(typeof(string));
            t.Members.Add(pry);

            CodeDomProvider p = CodeDomProvider.CreateProvider("cs");
            p.GenerateCodeFromType(t, Console.Out, null);

网友评论