2017-07-07 30 views
0

我創建一個Xamarin Java綁定庫。在我的Java代碼中,我班的一個看起來是這樣的:是否可以從Xamarin Java綁定庫中公開索引器?

public class ColoringList { 
    public long get(int index) { ... } 

    public void set(int index, long element) { ... } 
} 

我想從綁定庫在C#中暴露出這樣的:

public class ColoringList 
{ 
    public long this[int index] { get; set; } 
} 

有什麼辦法修改Xamarin的Metadata.xml文件,所以這而不是

public long Get(int index); 
public void Set(int index, long element); 

?謝謝。

回答

0

對於誰遇到這個問題其他人,解決的辦法是:1)在內部的方法Metadata.xml

<attr 
    path="/api/package[@name='com.bluejay.repository']/class[@name='ColoringList']/method[@name='get']" 
    name="visibility">internal</attr> 
<attr 
    path="/api/package[@name='com.bluejay.repository']/class[@name='ColoringList']/method[@name='set']" 
    name="visibility">internal</attr> 

然後,創建一個名爲YourClass.Manual.cs綁定庫中的文件,下面的代碼添加到包裝方法:

public partial class YourClass 
{ 
    public T this[int index] 
    { 
     get => Get(index); 
     set => Set(index, value); 
    } 
} 
相關問題