【问题标题】:How to call Internal class methods through Interface in DLL如何通过DLL中的接口调用内部类方法
【发布时间】:2019-05-23 09:45:36
【问题描述】:

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

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

它在我的项目/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 项目中调用此方法?

【问题讨论】:

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


    【解决方案1】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-17
      • 1970-01-01
      • 1970-01-01
      • 2021-01-19
      • 2020-12-28
      • 1970-01-01
      • 2021-09-27
      • 2019-07-02
      相关资源
      最近更新 更多