2017-07-07 56 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); 
    } 
} 
相关问题