![](/img/trans.png)
[英]c# Kinect 2.0 How to detect how far a body away from the center of Kinect sensor
[英]C# How to use two different versions of the same namespace (i.e. Kinect 1.8 and Kinect 2.0)
在C#中,我想在同一项目中引用Microsoft.Kinect(v1.8) 和 Microsoft.Kinect(v2.0)。 它们是不同的DLL,但使用相同的名称空间。 我可以通过重命名.csproj文件中的引用来引用它们(通过分别将它们分别称为“ Microsoft.Kinectv1”和“ Microsoft.Kinectv2”)。
然而,问题仍然在于如何在代码中专门引用一个或另一个,因为它们都具有相同的名称空间。 Visual Studio注意到在两个组件(v1.8和v2.0)中都使用了some类,但是我不知道如何在代码中指定一个版本或另一个版本。 我已经阅读了几篇有关此问题的文章,但这些文章都没有具体说明如何解决此问题。 怎么做?
在属性窗口中,为每个程序集指定不同的别名(假设您将它们命名为:assem01和assem02);
在要使用相同名称空间的文件的顶部,编写:
extern别名assem01;
extern别名assem02;
注意:这些行必须写在文件中的任何其他代码之前。
现在,您可以从两个程序集中访问相同的名称空间,例如:
var c1 = new assem01 :: ns1.ns2.myClass();
var c2 = new assem02 :: ns1.ns2.myClass();
为了方便起见,您可能还希望为命名空间提供一些别名,例如:
使用assem01_ns2 = assem01 :: ns1.ns2;
使用assem02_ns2 = assem01 :: ns1.ns2;
var c1 = new assem01_ns2.myClass();
var c2 = new assem02_ns2.myClass();
希望这会有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.