Merge pull request #3406 from alexanderkyte/mobile_static_default
[mono.git] / mcs / class / System / Microsoft.CSharp / CSharpCodeProvider.cs
index c01e786983dc14917c71be998b030a40173bed26..99678016b6b2f8cda98a6df70b13ad226c0c8475 100644 (file)
@@ -33,13 +33,15 @@ using System.CodeDom.Compiler;
 using System.ComponentModel;
 using System.IO;
 using System.Security.Permissions;
+using System.Collections.Generic;
 
 namespace Microsoft.CSharp {
 
        [PermissionSet (SecurityAction.LinkDemand, Unrestricted = true)]
        [PermissionSet (SecurityAction.InheritanceDemand, Unrestricted = true)]
        public class CSharpCodeProvider : CodeDomProvider {
-
+               IDictionary <string, string> providerOptions;
+               
                //
                // Constructors
                //
@@ -47,6 +49,11 @@ namespace Microsoft.CSharp {
                {
                }
 
+               public CSharpCodeProvider (IDictionary <string, string> providerOptions)
+               {
+                       this.providerOptions = providerOptions;
+               }
+
                //
                // Properties
                //
@@ -59,34 +66,32 @@ namespace Microsoft.CSharp {
                //
                // Methods
                //
-#if NET_2_0
                [Obsolete ("Use CodeDomProvider class")]
-#endif
                public override ICodeCompiler CreateCompiler()
                {
+                       if (providerOptions != null && providerOptions.Count > 0)
+                               return new Mono.CSharp.CSharpCodeCompiler (providerOptions);
                        return new Mono.CSharp.CSharpCodeCompiler();
                }
 
-#if NET_2_0
                [Obsolete ("Use CodeDomProvider class")]
-#endif
                public override ICodeGenerator CreateGenerator()
                {
+                       if (providerOptions != null && providerOptions.Count > 0)
+                               return new Mono.CSharp.CSharpCodeGenerator (providerOptions);
                        return new Mono.CSharp.CSharpCodeGenerator();
                }
                
                [MonoTODO]
-               public override TypeConverter GetConverter( Type Type )
+               public override TypeConverter GetConverter (Type type)
                {
                        throw new NotImplementedException();
                }
 
-#if NET_2_0
                [MonoTODO]
                public override void GenerateCodeFromMember (CodeTypeMember member, TextWriter writer, CodeGeneratorOptions options)
                {
                        throw new NotImplementedException();
                }
-#endif
        }
 }