繁体   English   中英

C#如何使用同一命名空间的两个不同版本(即Kinect 1.8和Kinect 2.0)

[英]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类,但是我不知道如何在代码中指定一个版本或另一个版本。 我已经阅读了几篇有关此问题的文章,但这些文章都没有具体说明如何解决此问题。 怎么做?

  1. 在属性窗口中,为每个程序集指定不同的别名(假设您将它们命名为:assem01和assem02);

  2. 在要使用相同名称空间的文件的顶部,编写:

    extern别名assem01;

    extern别名assem02;

注意:这些行必须写在文件中的任何其他代码之前。

  1. 现在,您可以从两个程序集中访问相同的名称空间,例如:

    var c1 = new assem01 :: ns1.ns2.myClass();

    var c2 = new assem02 :: ns1.ns2.myClass();

  2. 为了方便起见,您可能还希望为命名空间提供一些别名,例如:

    使用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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM