C# 如何通过DLL中的接口调用内部类方法
在我的Xamarin.iOS绑定项目中,我在ApiDefinition.cs中定义了以下接口C# 如何通过DLL中的接口调用内部类方法,c#,interface,xamarin.ios,abstract-class,C#,Interface,Xamarin.ios,Abstract Class,在我的Xamarin.iOS绑定项目中,我在ApiDefinition.cs中定义了以下接口 [BaseType(typeof(LSMAHandler))] [Protocol, Model] interface LSMAHandlerRegister 它在my project/obj/Debug/ios/project中生成了LSMAHandlerRegister.g.cs。此文件包含以下内容 公共接口ILSMAHandlerRegister:INativeObject, IDisposab
[BaseType(typeof(LSMAHandler))]
[Protocol, Model]
interface LSMAHandlerRegister
它在my project/obj/Debug/ios/project中生成了LSMAHandlerRegister.g.cs。此文件包含以下内容
我已将生成的DLL添加到我的xamarin.ios项目中。现在我想在上面的类中调用RegisterWithURL方法。但该方法的实现仅在内部包装类中可用。如何在Xamarin.iOS项目中调用此方法?简单的anwser-您不能。内部类在dll中不可见。 不过,有些事情你可以做 首先想想为什么这个类是内部的。这可能有一个重要原因。您可以做的事情(您必须访问此项目)
- 使类和接口公开(可能没有理由将其内部化)
- 使用
-但是请注意,这被视为一种不好的做法,不应这样做。一个例外是测试项目。您可以显示内部构件来测试项目。那也许有时候还可以InternalsVisibleTo
public class MyPublicHelper
{
public void CallMyInternalMethod()
{
MyInternalClass obj = new MyInternalClass();
obj.MyInternalMethod();
}
}