在我的Xamarin.iOS绑定项目中,我在ApiDefinition.cs中定义了以下接口
[BaseType(typeof(LSMAHandler))]
[Protocol, Model]
interface LSMAHandlerRegister
它已经在我的project / obj / Debug / ios / project中生成了LSMAHandlerRegister.g.cs。该文件包含以下内容
我已将生成的DLL添加到我的xamarin.ios项目中。现在,我想在上述类中调用RegisterWithURL方法。但是该方法的实现仅在内部包装器类中可用。如何在Xamarin.iOS项目中调用此方法?
答案 0 :(得分:1)
简单的答案-您不能。内部类在dll中不可见。 您可以做一些事情。
首先想想为什么这个类是内部的。可能有一个重要原因。您可以做的事情(您必须有权访问此项目)
InternalsVisibleTo
https://docs.microsoft.com/pl-pl/dotnet/api/system.runtime.compilerservices.internalsvisibletoattribute?view=netframework-4.8-但是,请注意,这被认为是不好的做法,不应这样做。测试项目是一个例外。您可以显示内部来测试项目。有时候可能还可以。创建使用此内部类的其他公共类,例如:
public class MyPublicHelper
{
public void CallMyInternalMethod()
{
MyInternalClass obj = new MyInternalClass();
obj.MyInternalMethod();
}
}