diff --git a/tests/generator-Tests/expected.ji/NonStaticFields/NonStaticField.xml b/tests/generator-Tests/expected.ji/NonStaticFields/NonStaticField.xml
index 883ce3628..20083ca1b 100644
--- a/tests/generator-Tests/expected.ji/NonStaticFields/NonStaticField.xml
+++ b/tests/generator-Tests/expected.ji/NonStaticFields/NonStaticField.xml
@@ -9,6 +9,8 @@
final="false" name="SomeObject" static="false" visibility="public">
+
+
diff --git a/tests/generator-Tests/expected.ji/NonStaticFields/Xamarin.Test.SomeObject.cs b/tests/generator-Tests/expected.ji/NonStaticFields/Xamarin.Test.SomeObject.cs
index e82874ff1..ec63804a3 100644
--- a/tests/generator-Tests/expected.ji/NonStaticFields/Xamarin.Test.SomeObject.cs
+++ b/tests/generator-Tests/expected.ji/NonStaticFields/Xamarin.Test.SomeObject.cs
@@ -36,6 +36,44 @@ public int Value {
}
}
+
+ // Metadata.xml XPath field reference: path="/api/package[@name='xamarin.test']/class[@name='SomeObject']/field[@name='BooleanValue']"
+ public bool BooleanValue {
+ get {
+ const string __id = "BooleanValue.Z";
+
+ var __v = _members.InstanceFields.GetBooleanValue (__id, this);
+ return __v;
+ }
+ set {
+ const string __id = "BooleanValue.Z";
+
+ try {
+ _members.InstanceFields.SetValue (__id, this, value);
+ } finally {
+ }
+ }
+ }
+
+
+ // Metadata.xml XPath field reference: path="/api/package[@name='xamarin.test']/class[@name='SomeObject']/field[@name='CharValue']"
+ public bool CharValue {
+ get {
+ const string __id = "CharValue.Z";
+
+ var __v = _members.InstanceFields.GetBooleanValue (__id, this);
+ return __v;
+ }
+ set {
+ const string __id = "CharValue.Z";
+
+ try {
+ _members.InstanceFields.SetValue (__id, this, value);
+ } finally {
+ }
+ }
+ }
+
static readonly JniPeerMembers _members = new JniPeerMembers ("xamarin/test/SomeObject", typeof (SomeObject));
[global::System.Diagnostics.DebuggerBrowsable (global::System.Diagnostics.DebuggerBrowsableState.Never)]
diff --git a/tests/generator-Tests/expected.ji/StaticFields/StaticField.xml b/tests/generator-Tests/expected.ji/StaticFields/StaticField.xml
index 83e2de132..186a4660c 100644
--- a/tests/generator-Tests/expected.ji/StaticFields/StaticField.xml
+++ b/tests/generator-Tests/expected.ji/StaticFields/StaticField.xml
@@ -11,6 +11,8 @@
+
+
diff --git a/tests/generator-Tests/expected.ji/StaticFields/Xamarin.Test.SomeObject.cs b/tests/generator-Tests/expected.ji/StaticFields/Xamarin.Test.SomeObject.cs
index 5b726dd25..3b0169b78 100644
--- a/tests/generator-Tests/expected.ji/StaticFields/Xamarin.Test.SomeObject.cs
+++ b/tests/generator-Tests/expected.ji/StaticFields/Xamarin.Test.SomeObject.cs
@@ -47,6 +47,44 @@ public static int Value2 {
}
}
+
+ // Metadata.xml XPath field reference: path="/api/package[@name='xamarin.test']/class[@name='SomeObject']/field[@name='BooleanValue']"
+ public static bool BooleanValue {
+ get {
+ const string __id = "BooleanValue.Z";
+
+ var __v = _members.StaticFields.GetBooleanValue (__id);
+ return __v;
+ }
+ set {
+ const string __id = "BooleanValue.Z";
+
+ try {
+ _members.StaticFields.SetValue (__id, value);
+ } finally {
+ }
+ }
+ }
+
+
+ // Metadata.xml XPath field reference: path="/api/package[@name='xamarin.test']/class[@name='SomeObject']/field[@name='CharValue']"
+ public static bool CharValue {
+ get {
+ const string __id = "CharValue.Z";
+
+ var __v = _members.StaticFields.GetBooleanValue (__id);
+ return __v;
+ }
+ set {
+ const string __id = "CharValue.Z";
+
+ try {
+ _members.StaticFields.SetValue (__id, value);
+ } finally {
+ }
+ }
+ }
+
static readonly JniPeerMembers _members = new JniPeerMembers ("xamarin/test/SomeObject", typeof (SomeObject));
[global::System.Diagnostics.DebuggerBrowsable (global::System.Diagnostics.DebuggerBrowsableState.Never)]
diff --git a/tests/generator-Tests/expected.xaji/NonStaticFields/Xamarin.Test.SomeObject.cs b/tests/generator-Tests/expected.xaji/NonStaticFields/Xamarin.Test.SomeObject.cs
index 6375ec7c0..f4988e1ce 100644
--- a/tests/generator-Tests/expected.xaji/NonStaticFields/Xamarin.Test.SomeObject.cs
+++ b/tests/generator-Tests/expected.xaji/NonStaticFields/Xamarin.Test.SomeObject.cs
@@ -38,6 +38,46 @@ public int Value {
}
}
+
+ // Metadata.xml XPath field reference: path="/api/package[@name='xamarin.test']/class[@name='SomeObject']/field[@name='BooleanValue']"
+ [Register ("BooleanValue")]
+ public bool BooleanValue {
+ get {
+ const string __id = "BooleanValue.Z";
+
+ var __v = _members.InstanceFields.GetBooleanValue (__id, this);
+ return __v;
+ }
+ set {
+ const string __id = "BooleanValue.Z";
+
+ try {
+ _members.InstanceFields.SetValue (__id, this, value);
+ } finally {
+ }
+ }
+ }
+
+
+ // Metadata.xml XPath field reference: path="/api/package[@name='xamarin.test']/class[@name='SomeObject']/field[@name='CharValue']"
+ [Register ("CharValue")]
+ public bool CharValue {
+ get {
+ const string __id = "CharValue.Z";
+
+ var __v = _members.InstanceFields.GetBooleanValue (__id, this);
+ return __v;
+ }
+ set {
+ const string __id = "CharValue.Z";
+
+ try {
+ _members.InstanceFields.SetValue (__id, this, value);
+ } finally {
+ }
+ }
+ }
+
static readonly JniPeerMembers _members = new XAPeerMembers ("xamarin/test/SomeObject", typeof (SomeObject));
internal static new IntPtr class_ref {
diff --git a/tests/generator-Tests/expected.xaji/StaticFields/Xamarin.Test.SomeObject.cs b/tests/generator-Tests/expected.xaji/StaticFields/Xamarin.Test.SomeObject.cs
index 57a795e04..5fd889924 100644
--- a/tests/generator-Tests/expected.xaji/StaticFields/Xamarin.Test.SomeObject.cs
+++ b/tests/generator-Tests/expected.xaji/StaticFields/Xamarin.Test.SomeObject.cs
@@ -50,6 +50,46 @@ public static int Value2 {
}
}
+
+ // Metadata.xml XPath field reference: path="/api/package[@name='xamarin.test']/class[@name='SomeObject']/field[@name='BooleanValue']"
+ [Register ("BooleanValue")]
+ public static bool BooleanValue {
+ get {
+ const string __id = "BooleanValue.Z";
+
+ var __v = _members.StaticFields.GetBooleanValue (__id);
+ return __v;
+ }
+ set {
+ const string __id = "BooleanValue.Z";
+
+ try {
+ _members.StaticFields.SetValue (__id, value);
+ } finally {
+ }
+ }
+ }
+
+
+ // Metadata.xml XPath field reference: path="/api/package[@name='xamarin.test']/class[@name='SomeObject']/field[@name='CharValue']"
+ [Register ("CharValue")]
+ public static bool CharValue {
+ get {
+ const string __id = "CharValue.Z";
+
+ var __v = _members.StaticFields.GetBooleanValue (__id);
+ return __v;
+ }
+ set {
+ const string __id = "CharValue.Z";
+
+ try {
+ _members.StaticFields.SetValue (__id, value);
+ } finally {
+ }
+ }
+ }
+
static readonly JniPeerMembers _members = new XAPeerMembers ("xamarin/test/SomeObject", typeof (SomeObject));
internal static new IntPtr class_ref {
diff --git a/tools/generator/SourceWriters/BoundFieldAsProperty.cs b/tools/generator/SourceWriters/BoundFieldAsProperty.cs
index 5ebe97f95..4bd7b0f7a 100644
--- a/tools/generator/SourceWriters/BoundFieldAsProperty.cs
+++ b/tools/generator/SourceWriters/BoundFieldAsProperty.cs
@@ -139,7 +139,10 @@ protected override void WriteSetterBody (CodeWriter writer)
writer.WriteLine (prep);
}
- arg = field.SetParameters [0].ToNative (opt);
+ var param = field.SetParameters [0];
+ arg = param.Symbol.OnlyFormatOnMarshal
+ ? opt.GetSafeIdentifier (param.Name)
+ : param.ToNative (opt);
if (opt.CodeGenerationTarget != CodeGenerationTarget.JavaInterop1 &&
field.SetParameters.HasCleanup &&