2007-12-15 Marek Habersack <mhabersack@novell.com>
[mono.git] / mcs / class / System / Microsoft.CSharp / CSharpCodeProvider.cs
index c371d5671057165c8e820436650d200aea2ab5c7..bcec0bcfb5d7680fefcf1af65866b6a4b6413b5e 100644 (file)
@@ -34,12 +34,19 @@ using System.ComponentModel;
 using System.IO;
 using System.Security.Permissions;
 
+#if NET_2_0
+using System.Collections.Generic;
+#endif
+
 namespace Microsoft.CSharp {
 
        [PermissionSet (SecurityAction.LinkDemand, Unrestricted = true)]
        [PermissionSet (SecurityAction.InheritanceDemand, Unrestricted = true)]
        public class CSharpCodeProvider : CodeDomProvider {
-
+#if NET_2_0
+               Dictionary <string, string> providerOptions;
+#endif
+               
                //
                // Constructors
                //
@@ -47,6 +54,12 @@ namespace Microsoft.CSharp {
                {
                }
 
+#if NET_2_0
+               public CSharpCodeProvider (Dictionary <string, string> providerOptions)
+               {
+                       this.providerOptions = providerOptions;
+               }
+#endif
                //
                // Properties
                //
@@ -64,6 +77,10 @@ namespace Microsoft.CSharp {
 #endif
                public override ICodeCompiler CreateCompiler()
                {
+#if NET_2_0
+                       if (providerOptions != null && providerOptions.Count > 0)
+                               return new Mono.CSharp.CSharpCodeCompiler (providerOptions);
+#endif
                        return new Mono.CSharp.CSharpCodeCompiler();
                }
 
@@ -72,6 +89,10 @@ namespace Microsoft.CSharp {
 #endif
                public override ICodeGenerator CreateGenerator()
                {
+#if NET_2_0
+                       if (providerOptions != null && providerOptions.Count > 0)
+                               return new Mono.CSharp.CSharpCodeGenerator (providerOptions);
+#endif
                        return new Mono.CSharp.CSharpCodeGenerator();
                }
                
@@ -83,7 +104,7 @@ namespace Microsoft.CSharp {
 
 #if NET_2_0
                [MonoTODO]
-               public void GenerateCodeFromMember (CodeTypeMember member, TextWriter writer, CodeGeneratorOptions options)
+               public override void GenerateCodeFromMember (CodeTypeMember member, TextWriter writer, CodeGeneratorOptions options)
                {
                        throw new NotImplementedException();
                }