簡體   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