diff --git a/src/Generator/Generators/CLI/CLIHeadersTemplate.cs b/src/Generator/Generators/CLI/CLIHeadersTemplate.cs index fa2f474c..43847c58 100644 --- a/src/Generator/Generators/CLI/CLIHeadersTemplate.cs +++ b/src/Generator/Generators/CLI/CLIHeadersTemplate.cs @@ -215,23 +215,7 @@ namespace Cxxi.Generators.CLI if (@class.IsRefType) { - Class baseClass = null; - - if (@class.HasBaseClass) - baseClass = @class.Bases[0].Class; - - var hasRefBase = baseClass != null && baseClass.IsRefType - && !baseClass.Ignore; - - var hasIgnoredBase = baseClass != null && baseClass.Ignore; - - if (!@class.HasBase || !hasRefBase || hasIgnoredBase) - { - PushIndent(); - WriteLine("property {0} NativePtr;", nativeType); - PopIndent(); - NewLine(); - } + GenerateClassNativeField(@class, nativeType); } GenerateClassConstructors(@class, nativeType); @@ -253,6 +237,25 @@ namespace Cxxi.Generators.CLI WriteLine("};"); } + public void GenerateClassNativeField(Class @class, string nativeType) + { + Class baseClass = null; + + if (@class.HasBaseClass) + baseClass = @class.Bases[0].Class; + + var hasRefBase = baseClass != null && baseClass.IsRefType + && !baseClass.Ignore; + + var hasIgnoredBase = baseClass != null && baseClass.Ignore; + + if (!@class.HasBase || !hasRefBase || hasIgnoredBase) + { + WriteLineIndent("property {0} NativePtr;", nativeType); + NewLine(); + } + } + public void GenerateClassGenericMethods(Class @class) { var printer = TypePrinter as CLITypePrinter;