2012-05-18 13 views
1

的DLL的我有具有構造和析構和方法名需求的C++/CLI類。我需要在c#wcf程序中調用這個方法,所以這就是我在調用C++/cli方法的c#wcf代碼中所做的。如何調用C++/CLI構造在C#以及如何包含CLI

​​3210

我的問題是,如何做的C#程序知道它指的是哪個C++/CLI程序,並添加此CLI DLL作爲到C#WCF程序的引用,也用它作爲一個命名空間。所以我想知道我所做的是否正確,並且想知道是否還有其他方法可以做到這一點,或者需要在c#程序中更改任何其他設置。

回答

0

你只能做得稍微好一點,因爲你已經在做。如果你的C++/CLI類包含一些本地的資源(通常使用C++/CLI的唯一原因),你已經正確實施了C++/CLI「析構函數」,即~Class1()方法:

using (var test1 = new Class1()) { 
    test1.requirement(); 
} 

這工作,因爲每個C++/CLI類默認實現IDisposable,並將~Class1()映射爲Dispose的實現。

0

這是由你的項目引用定義(右鍵單擊項目 - >添加引用...)。如果C++/CLI項目處於相同的解決方案中,則應將其添加到「項目」選項卡下,否則請選擇「瀏覽」並在文件系統上選擇C++/CLI程序集。

C++/CLI項目和組件沒有在這方面比任何其他.NET項目或組件不同。

要確保在你的代碼標識「1類」指的是正確的類型,可以使用轉到定義,它應該告訴你的類型被定義在哪裏。如果存在歧義或缺少引用,代碼無論如何都不會編譯。

0

你在做什麼在我看來是正確的,你不需要做任何事情。確保Class1在C++/CLI程序集(public ref class Class1)中被聲明爲Managed類,並且您很好。

既然你已經添加了C++/CLI組件參考具有WPF代碼的程序集,並且還添加了命名空間的使用條款,運行時和編譯器有足夠的信息來解決事情。

相關問題