在我的Xamarin.iOS绑定项目中,我在ApiDefinition.cs中定义了以下接口
[BaseType(typeof(LSMAHandler))]
[Protocol, Model]
interface LSMAHandlerRegister它在我的项目/obj/Debug/ios/project中生成了LSMAHandlerRegister.g.cs。此文件包含以下内容
我已经将生成的DLL添加到我的xamarin.ios项目中。现在我想在上面的类中调用RegisterWithURL方法。但是该方法的实现仅在内部包装类中可用。如何在我的Xamarin.iOS项目中调用此方法?
发布于 2019-05-23 09:59:58
简单的分析器-你不能。内部类是不可见的dll。不过,有些事情你可以做。
首先,想想为什么这个类是内部的。这可能有一个重要的原因。你能做的事情(你必须有机会进入这个项目)
InternalsVisibleTo https://learn.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();
}
}https://stackoverflow.com/questions/56272454
复制相似问题