diff --git a/src/Generator/Generators/CSharp/CSharpTextTemplate.cs b/src/Generator/Generators/CSharp/CSharpTextTemplate.cs index 49d230da..ec96b60e 100644 --- a/src/Generator/Generators/CSharp/CSharpTextTemplate.cs +++ b/src/Generator/Generators/CSharp/CSharpTextTemplate.cs @@ -580,21 +580,7 @@ namespace Cxxi.Generators.CSharp public void GenerateClassConstructors(Class @class) { // Output a default constructor that takes the native pointer. - WriteLine("{0}(System.IntPtr native)", SafeIdentifier(@class.Name)); - WriteStartBraceIndent(); - - if (@class.IsRefType) - { - if (ShouldGenerateClassNativeField(@class)) - WriteLine("Instance = native;"); - } - else - { - GenerateStructMarshaling(@class); - } - - WriteCloseBraceIndent(); - NewLine(); + GenerateNativeConstructor(@class); foreach (var ctor in @class.Constructors) { @@ -622,6 +608,24 @@ namespace Cxxi.Generators.CSharp } } + private void GenerateNativeConstructor(Class @class) + { + WriteLine("internal {0}(System.IntPtr native)", SafeIdentifier(@class.Name)); + WriteStartBraceIndent(); + + if (@class.IsRefType) + { + if (ShouldGenerateClassNativeField(@class)) + WriteLine("Instance = native;"); + } + else + { + GenerateStructMarshaling(@class); + } + + WriteCloseBraceIndent(); + } + private bool GenerateClassConstructorBase(Class @class, Method method) { var hasBase = @class.HasBase && !@class.Bases[0].Class.Ignore;