C# 如何重命名Xamarin绑定库中的属性
我正在尝试为LineSDK(亚洲地区流行的SNS服务)构建一个android绑定库。我将SDK中的jar文件添加到我的项目中,但它无法编译,因为SDK的创建者恰好对类及其属性使用了相同的名称 这是项目从jar文件生成的C#代码的一部分C# 如何重命名Xamarin绑定库中的属性,c#,xamarin,C#,Xamarin,我正在尝试为LineSDK(亚洲地区流行的SNS服务)构建一个android绑定库。我将SDK中的jar文件添加到我的项目中,但它无法编译,因为SDK的创建者恰好对类及其属性使用了相同的名称 这是项目从jar文件生成的C#代码的一部分 public partial class AccessToken : global::Java.Lang.Object { // Metadata.xml XPath field reference: path="/api/package[@name='j
public partial class AccessToken : global::Java.Lang.Object {
// Metadata.xml XPath field reference: path="/api/package[@name='jp.line.android.sdk.model']/class[@name='AccessToken']/field[@name='accessToken']"
[Register ("accessToken")]
public string AccessToken {
get { /* ... */ }
set { /* ... */ }
}
//...
}
现在简单地说,我想知道如何重命名这个属性“AccessToken”。我尝试在Metadata.xml中添加一些命令,但没有效果。这是我写的一行参考资料
<attr path="/api/package[@name='jp.line.android.sdk.model']/class[@name='AccessToken']/field[@name='accessToken']" name="propertyName">AccessTokenString</attr>
AccessTokenString
如果有人能帮我,我将不胜感激。我在这里完全迷路了 我认为唯一的问题是“propertyName”应该是“name”:
AccessTokenString
@suavepirpirate的建议不会完全奏效(至少现在不会)
如果使用名称
,它还会将寄存器
属性参数重命名为[寄存器(“AccessTokenString”)]
,而不是[寄存器(“accessToken”)]
。因此,正如它所说的,Xamarin.Android绑定类将不再能够访问该属性,因为它没有绑定到现有的Java成员
要正确更改已包装成员的托管名称,必须设置managedName
属性,即:
<attr path="/api/package[@name='jp.line.android.sdk.model']/class[@name='AccessToken']/field[@name='accessToken']" name="managedName">AccessTokenString</attr>
AccessTokenString
您是否有到绑定项目和/或.jar的链接,以便更容易查看以前的属性?(即,它很可能是一种get/set方法)
<attr path="/api/package[@name='jp.line.android.sdk.model']/class[@name='AccessToken']/field[@name='accessToken']" name="managedName">AccessTokenString</attr>