diff --git a/src/Generator/Generators/CSharp/CSharpTextTemplate.cs b/src/Generator/Generators/CSharp/CSharpTextTemplate.cs index 984c1194..e7bd048c 100644 --- a/src/Generator/Generators/CSharp/CSharpTextTemplate.cs +++ b/src/Generator/Generators/CSharp/CSharpTextTemplate.cs @@ -1264,9 +1264,18 @@ namespace CppSharp.Generators.CSharp } else { - var name = ((Class) method.Namespace).Properties.First( - p => p.GetMethod == method || p.SetMethod == method).Name; - WriteLine("target.{0};", name); + var property = ((Class) method.Namespace).Properties.FirstOrDefault( + p => p.GetMethod == method); + if (property == null) + { + property = ((Class) method.Namespace).Properties.First( + p => p.SetMethod == method); + WriteLine("target.{0} = {1};", property.Name, string.Join(", ", marshals)); + } + else + { + WriteLine("target.{0};", property.Name); + } } // TODO: Handle hidden structure return types. diff --git a/src/Generator/Passes/GetterSetterToPropertyPass.cs b/src/Generator/Passes/GetterSetterToPropertyPass.cs index 98b5d945..5bf2b77c 100644 --- a/src/Generator/Passes/GetterSetterToPropertyPass.cs +++ b/src/Generator/Passes/GetterSetterToPropertyPass.cs @@ -182,7 +182,7 @@ namespace CppSharp.Passes private void DistributeMethod(Method method) { - if (GetFirstWord(method.Name) == "set" && + if (GetFirstWord(method.Name) == "set" && method.Name.Length > 3 && method.ReturnType.Type.IsPrimitiveType(PrimitiveType.Void)) { if (method.Parameters.Count == 1) @@ -205,7 +205,8 @@ namespace CppSharp.Passes method.Parameters.Count > 0 || method.IsDestructor) return false; var result = GetFirstWord(method.Name); - return result == "get" || result == "is" || result == "has" || + return (result.Length < method.Name.Length && + (result == "get" || result == "is" || result == "has")) || (result != "to" && result != "new" && !verbs.Contains(result)); }