如何通过DLL中的接口调用内部类方法

时间:2019-05-23 09:45:36

标签: c# interface xamarin.ios abstract-class

在我的Xamarin.iOS绑定项目中,我在ApiDefinition.cs中定义了以下接口

[BaseType(typeof(LSMAHandler))]
[Protocol, Model]
interface LSMAHandlerRegister

它已经在我的project / obj / Debug / ios / project中生成了LSMAHandlerRegister.g.cs。该文件包含以下内容

  1. 公共接口ILSMAHandlerRegister:INativeObject, IDisposable,SightCallBinding.ILSMAHandler
  2. 内部密封类LSMAHandlerRegisterWrapper:BaseWrapper, ILSMAHandlerRegister
  3. 公共不安全抽象局部类LSMAHandlerRegister: LSMAHandler,ILSMAHandlerRegister

我已将生成的DLL添加到我的xamarin.ios项目中。现在,我想在上述类中调用RegisterWithURL方法。但是该方法的实现仅在内部包装器类中可用。如何在Xamarin.iOS项目中调用此方法?

1 个答案:

答案 0 :(得分:1)

简单的答案-您不能。内部类在dll中不可见。 您可以做一些事情。

首先想想为什么这个类是内部的。可能有一个重要原因。您可以做的事情(您必须有权访问此项目)

创建使用此内部类的其他公共类,例如:

public class MyPublicHelper
{
    public void CallMyInternalMethod()
    {
        MyInternalClass obj = new MyInternalClass();
        obj.MyInternalMethod();
    }
}