From c5382ee66697a2df4385f8ce710621a321ed365b Mon Sep 17 00:00:00 2001 From: Dimitar Dobrev Date: Fri, 20 Sep 2013 18:21:33 +0300 Subject: [PATCH] Changed a bit the method for a class definition to be able to reuse it for interfaces. Signed-off-by: Dimitar Dobrev --- .../Generators/CSharp/CSharpTextTemplate.cs | 26 +++++-------------- 1 file changed, 7 insertions(+), 19 deletions(-) diff --git a/src/Generator/Generators/CSharp/CSharpTextTemplate.cs b/src/Generator/Generators/CSharp/CSharpTextTemplate.cs index c60bcbdc..486994b5 100644 --- a/src/Generator/Generators/CSharp/CSharpTextTemplate.cs +++ b/src/Generator/Generators/CSharp/CSharpTextTemplate.cs @@ -366,21 +366,7 @@ namespace CppSharp.Generators.CSharp PushBlock(CSharpBlockKind.Class); GenerateDeclarationCommon(@class); - Write(Helpers.GetAccess(@class)); - Write("unsafe "); - - if (Options.GeneratePartialClasses) - Write("partial "); - - Write("interface "); - Write("{0}", SafeIdentifier(@class.Name)); - - if (@class.HasBase) - { - Write(" : {0}", string.Join(", ", - from @base in @class.Bases - select QualifiedIdentifier(@base.Class))); - } + GenerateClassProlog(@class); NewLine(); WriteStartBraceIndent(); @@ -699,14 +685,16 @@ namespace CppSharp.Generators.CSharp if (Options.GeneratePartialClasses) Write("partial "); - Write(@class.IsValueType ? "struct " : "class "); + Write(@class.IsInterface ? "interface " : (@class.IsValueType ? "struct " : "class ")); Write("{0}", SafeIdentifier(@class.Name)); var needsBase = @class.HasBaseClass && !@class.IsValueType && !@class.Bases[0].Class.IsValueType && !@class.Bases[0].Class.Ignore; - if (needsBase || @class.IsRefType) + var isRefClass = @class.IsRefType && !@class.IsInterface; + + if (needsBase || isRefClass) Write(" : "); if (needsBase) @@ -715,11 +703,11 @@ namespace CppSharp.Generators.CSharp from @base in @class.Bases select QualifiedIdentifier(@base.Class))); - if (@class.IsRefType) + if (isRefClass) Write(", "); } - if (@class.IsRefType) + if (isRefClass) Write("IDisposable"); }