Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为Xamarin.iOS中的2个相关静态库创建绑定_C#_Ios_Binding_Xamarin.ios_Xamarin - Fatal编程技术网

C# 为Xamarin.iOS中的2个相关静态库创建绑定

C# 为Xamarin.iOS中的2个相关静态库创建绑定,c#,ios,binding,xamarin.ios,xamarin,C#,Ios,Binding,Xamarin.ios,Xamarin,我对Xamarin.iOS的绑定有问题 我有两个图书馆: 利巴 B.a.图书馆 libB.a依赖于libA.a类。在libA中,我有一门课: namespace ABC { [BaseType (typeof (NSObject))] public partial interface ClassAbc { [Export ("setString:")] void SetString (string abc); } } 在libB中,我有以

我对Xamarin.iOS的绑定有问题

我有两个图书馆: 利巴 B.a.图书馆

libB.a依赖于libA.a类。在libA中,我有一门课:

namespace ABC {
    [BaseType (typeof (NSObject))]
    public partial interface ClassAbc {
        [Export ("setString:")]
        void SetString (string abc);
    }
}
libB中,我有以下代码:

namespace ABCUsage {
    [BaseType (typeof (NSObject))]
    public partial interface ClassAbcUsage {
        [Export ("setAbc:")]
        void SetAbc (ClassAbc abc);
    }
}
我没有libA.a和libB.a的源代码,只有通用静态库和头

我试图添加libA绑定项目和final A.dll作为libB绑定的参考,但它显示“未找到命名空间ABC”


如何为libB创建正确的绑定?

您好,您可以在单个绑定项目中绑定任意多个库,只需确保指定完全限定的类型名即可

namespace ABC {
    [BaseType (typeof (NSObject))]
    public partial interface ClassAbc {
        [Export ("setString:")]
        void SetString (string abc);
    }
}

namespace ABCUsage {
    [BaseType (typeof (NSObject))]
    public partial interface ClassAbcUsage {
        [Export ("setAbc:")]
        void SetAbc (ABC.ClassAbc abc);
                    //^^^^^
    }
}

希望这有帮助。

天哪!它起作用了。我甚至无法想象我可以在绑定项目中添加几个静态库。谢谢大家!@dalexsoto,这确实是一个很好的答案!然而,尽管已经快五年了,哈哈,你能回答一下在这两个库连接的上下文中,应用程序流是什么吗?我的意思是,如果我们调用库1中的一些代码,这需要访问库2中的一些方法(从它的本机代码),那么这些方法是如何工作的?@Agat如果它们是静态库,那么它应该按原样工作,因为本机链接器应该解决这个问题,并保留对象,除非本机库正在动态解析内容。当然,bot本机静态库应该添加到同一个绑定项目中。@dalexsoto,这两个静态库都是由Sharpie从*.framework转换而来的。那么,看起来,好像没事吧?但我想澄清的是:我可以将两个*.a文件添加到一个绑定项目中,而构建器(链接器)将自己解决所有问题?我的意思是,如果其中一个*.a文件引用了第二个?(我的意思是,在本地层面上)。