diff --git a/src/Generator/Generators/CLI/CLISourcesTemplate.cs b/src/Generator/Generators/CLI/CLISourcesTemplate.cs index d6f51e30..c2861d1f 100644 --- a/src/Generator/Generators/CLI/CLISourcesTemplate.cs +++ b/src/Generator/Generators/CLI/CLISourcesTemplate.cs @@ -141,18 +141,20 @@ namespace Cxxi.Generators.CLI WriteStartBraceIndent(); + var nativePtr = "native"; + + if (isIntPtr) + { + WriteLine("auto __native = (::{0}*)native.ToPointer();", + @class.QualifiedOriginalName); + nativePtr = "__native"; + } + if (@class.IsRefType) { if (!hasBase) { - Write("NativePtr = "); - - if (isIntPtr) - Write("({0})", nativeType); - Write("native"); - if (isIntPtr) - Write(".ToPointer()"); - WriteLine(";"); + WriteLine("NativePtr = {0};", nativePtr); } } else