2016-12-01 4 views
2

Ich versuche, eine android-bindende Bibliothek für LINE SDK (ein SNS-Dienst in Asien beliebt) zu bauen. Ich habe die JAR-Datei aus dem SDK in mein Projekt eingefügt, aber es kann nicht kompiliert werden, da die Ersteller des SDK zufällig denselben Namen für eine Klasse und ihre Eigenschaft verwenden.So benennen Sie eine Eigenschaft in Xamarin Binding-Bibliothek um

Dies ist Teil des C# -Code, dass das Projekt aus der JAR-Datei erzeugt

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 { /* ... */ } 
    } 
//... 
} 

Nun einfach gesagt, ich möchte wissen, wie ich diese Eigenschaft umbenennen „AccessToken“. Ich habe versucht, einige Befehle in Metadata.xml hinzuzufügen, aber es hatte keine Auswirkungen. Hier ist eine Zeile von dem, was ich für Referenz geschrieben habe

<attr path="/api/package[@name='jp.line.android.sdk.model']/class[@name='AccessToken']/field[@name='accessToken']" name="propertyName">AccessTokenString</attr> 

Ich wäre dankbar, wenn jemand mir helfen könnte. Ich bin total verloren hier.

+0

Haben Sie einen Link auf die Bindung Projekt und/oder '.jar' so ist es einfacher zu sehen, wie die Immobilie vorher aussah? (d. h. es ist höchstwahrscheinlich eine get/set-Methode) –

Antwort

2

glaube ich, das einzige Problem ist, dass „PROPERTY“ sollte „name“ nur: schlägt

<attr path="/api/package[@name='jp.line.android.sdk.model']/class[@name='AccessToken']/field[@name='accessToken']" name="name">AccessTokenString</attr> 
1

Was @SuavePirate nicht vollständig funktioniert (zumindest jetzt nicht).

Wenn Sie name verwenden wird es auch die Register Attribut Parameter als [Register ("AccessTokenString")] statt [Register ("accessToken")] umbenennen. So wie es here angibt, wird es für die Bindungsklasse Xamarin.Android nicht mehr möglich sein, auf diese Eigenschaft zuzugreifen, da sie nicht an ein vorhandenes Java-Member gebunden ist.

richtig auf den verwalteten Namen eines umhüllten Mitglied zu ändern, ist es notwendig, die managedName Attribut gesetzt, das heißt:

<attr path="/api/package[@name='jp.line.android.sdk.model']/class[@name='AccessToken']/field[@name='accessToken']" name="managedName">AccessTokenString</attr> 
Verwandte Themen