我在將一個C#DLL導入到另一個簡單的測試應用程序(控制檯,winform,你的名字)很困難。在c中導入一個DLL的問題#
基本上,它包括在消耗歐洲共同體增值稅檢查服務(URL我相信是Vat webservice一個巨大的圖書館。
的服務讓你下載一個圖書館,那麼代碼的執行是由你。
我也開始在Visual Studio 2010中新的C#類庫,然後添加this class它會自動從Web服務下載供自己使用,然後寫了這個片斷我在網上發現了什麼。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Xml;
using System.IO;
namespace EuroVAT
{
public class EuroVAT
{
public static Array check(string country, string vatNum)
{
bool valid;
string name;
string address;
checkVatService vatchecker = new checkVatService();
vatchecker.checkVat(ref country, ref vatNum, out valid, out name, out address);
return new object[] {country,
vatNum,
valid,
name,
address
};
}
}
}
那麼,當我創建一個新的控制檯應用程序,然後添加一個引用(右鍵點擊項目名稱,添加引用,瀏覽到DLL)我的DLL編譯從一個類庫項目,其中包括我鏈接/引用2類這裏。
下面是一些代碼,我試圖用我的DLL:
using EuroVAT;
namespace DLLTEST
{
class Program
{
static void Main(string[] args)
{
EuroVat test = new EuroVat();
}
}
}
基本上我不能夠從程序調用它們。我得到的,當我嘗試打電話EuroVAT對象是
錯誤1類型或命名空間名稱「EuroVAT」找不到(被 你缺少using指令或程序集引用?)
我試圖建立,關閉,重新打開項目。試圖把它放在Winforms等無濟於事。 我總是得到那個錯誤。
我在做什麼錯? 我能做些什麼來解決它?
還有一個問題:
這段代碼究竟做了什麼?
return new object[] {country,
vatNum,
valid,
name,
address
};
這就像返回一個對象數組? 因爲當我運行程序時,所有的輸出都拋出所有輸出。通常我不得不循環throught帶有某種迴路的輸出...
最後一個問題,如果有人能夠幫助:
我必須包括在SQL服務器這個DLL(2008年,我認爲)
我已閱讀有關主題,並發現爲了從C#dll將值傳遞給SQL Server,您必須包含各種庫並將您的方法聲明爲SqlProcedures,還要將值傳遞/檢索爲SqlTypes(SqlInt32,SqlString等等等)。
這就是我想出了:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Xml;
using System.IO;
using System.Data;
using System.Data.SqlClient;
using System.Data.SqlTypes;
using Microsoft.SqlServer.Server;
namespace WebServiceVatEuropa
{
class Program
{
[SqlProcedure]
public static Array check(string country, string vatNum)
{
bool valid;
string name;
string address;
checkVatService vatchecker = new checkVatService();
vatchecker.checkVat(ref country, ref vatNum, out valid, out name, out address);
return new object[] {country,
vatNum,
valid,
name,
address
};
}
}
}
我希望它是正確的。 我缺少的是如何將所有這些對象轉換爲像SqlInt32,SqlString等SqlTypes。我嘗試過,但我收到了大量的轉換錯誤和類似的東西。它只是不允許我將這些對象聲明爲SqlTypes,並且我無法制作出最後一個返回語句來輸出這些SqlTypes。
任何人都可以顯示一個例子,如果可能的話?
謝謝大家。
謝謝您的回答。那麼我設法使用DLL,但它不是大寫/小寫問題,而是一個編譯問題。解決了。 關於對象數組,我想我有正確的直覺。謝謝。 您給我的SqlTypes提示仍然有點模糊,所以我會等待將您的答案標記爲已解決,因爲我希望看到有關此特定主題的其他人的觀點。 非常感謝您的幫助。 –
編輯: 我想我找到了一種方法做的SQLType轉換做這樣的: 返回新對象[] {(的SqlString)國家, (的SqlString)vatNum, (SqlBoolean)有效, (的SqlString)名稱, (SqlString)address }; 但我沒有測試它。 –
我的問題是'check()'方法不能有void或int以外的返回類型。 [鏈接](http://msdn.microsoft.com/en-us/library/ms131094.aspx) – Tommy