Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Imports System.CodeDom
- Module SO12963383Main
- Sub Main
- Dim compileUnit As New CodeCompileUnit
- Dim ns As New CodeNamespace()
- compileUnit.Namespaces.Add(ns)
- ns.Imports.Add(New CodeNamespaceImport("System"))
- ns.Imports.Add(New CodeNamespaceImport("System.Collections.Generic"))
- Dim fooClass As New CodeTypeDeclaration("Foo")
- ns.Types.Add(fooClass)
- fooClass.TypeAttributes = Reflection.TypeAttributes.Public
- fooClass.IsClass = True
- Dim fooCollection As New CodeTypeDeclaration("FooCollection")
- ns.Types.Add(fooCollection)
- fooCollection.TypeAttributes = Reflection.TypeAttributes.Public
- fooCollection.IsClass = True
- fooCollection.BaseTypes.Add(New CodeTypeReference(GetType(System.Object)))
- fooCollection.BaseTypes.Add(New CodeTypeReference( _
- "System.Collections.Generic.IEnumerable" _
- , New CodeTypeReference() {New CodeTypeReference("Foo")} _
- ))
- Dim method As New CodeMemberMethod
- fooCollection.Members.Add(method)
- method.Attributes = MemberAttributes.Private
- method.Name = "GetEnumerator"
- method.ReturnType = New CodeTypeReference( _
- "System.Collections.Generic.IEnumerator" _
- , New CodeTypeReference() {New CodeTypeReference("Foo")} _
- )
- method.ImplementationTypes.Add(New CodeTypeReference( _
- "System.Collections.Generic.IEnumerable" _
- , New CodeTypeReference() {New CodeTypeReference("Foo")} _
- ))
- method = New CodeMemberMethod
- fooCollection.Members.Add(method)
- method.Attributes = MemberAttributes.Private
- method.Name = "GetEnumerator"
- method.ReturnType = New CodeTypeReference( _
- "System.Collections.IEnumerator" _
- )
- method.PrivateImplementationType = New CodeTypeReference( _
- "System.Collections.IEnumerable" _
- )
- Dim provider As New Microsoft.VisualBasic.VBCodeProvider
- Dim options As New Compiler.CodeGeneratorOptions
- Dim writer As New IO.StringWriter
- provider.GenerateCodeFromCompileUnit(compileUnit, writer, options)
- Console.WriteLine(writer.ToString())
- End Sub
- End Module
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement