diff --git a/Polonium.Tasks.csproj b/Polonium.Tasks.csproj
index a0a052c..496eb08 100644
--- a/Polonium.Tasks.csproj
+++ b/Polonium.Tasks.csproj
@@ -8,7 +8,7 @@
Polonium.Tasks
Polonium.Tasks
true
- 0.0.92-d
+ 0.1.0
true
true
diff --git a/src/GenerateProxyNodesTask.cs b/src/GenerateProxyNodesTask.cs
index 9bd3596..35cb097 100644
--- a/src/GenerateProxyNodesTask.cs
+++ b/src/GenerateProxyNodesTask.cs
@@ -68,7 +68,29 @@ public class GenerateProxyNodesTask : Task
.AppendLine("using _BINDINGS_NAMESPACE_;")
.AppendLine("using System;")
.AppendLine("public partial class _CLASS_ : GlobalClasses._CLASS_")
- .AppendLine("{")
+ .AppendLine("{");
+ IEnumerable methods = cls.Members
+ .OfType()
+ .Where(m => m.AttributeLists
+ .SelectMany(a => a.Attributes)
+ .Any(attr => attr.Name.ToString().Contains("ProxyMethod"))
+ );
+ foreach (MethodDeclarationSyntax proxyMethod in methods)
+ {
+ string methodReturnType = proxyMethod.ReturnType.ToString();
+ string methodName = proxyMethod.Identifier.Text;
+ string methodArgs = string.Join(", ", proxyMethod.ParameterList.Parameters.Select(p => p.ToString()));
+ string paramNames = string.Join(", ", proxyMethod.ParameterList.Parameters.Select(p => p.Identifier.Text));
+ sbx
+ .AppendLine($" public override {methodReturnType} {methodName}({methodArgs})")
+ .AppendLine(" {");
+ if(methodReturnType=="void")
+ sbx.AppendLine($" base.{methodName}({paramNames});");
+ else
+ sbx.AppendLine($" return base.{methodName}({paramNames});");
+ sbx.AppendLine(" }");
+ }
+ sbx
.AppendLine("}");
if(!Directory.Exists($"{TemplateDirectory}/{className}"))
Directory.CreateDirectory($"{TemplateDirectory}/{className}");