簡體   English   中英

SSIS並重新使用C#

[英]SSIS and re-using C#

我是SSIS / C#的新手(我通常是一名Java開發人員),如果這是一個非常愚蠢的問題,請道歉。

本質上問題是:我有兩個數據流任務,它們加載數據並將它們導出為傳統的平面文件格式。 格式化由腳本任務(C#)完成。

我想做的是在兩者之間分享一些共同的代碼。 例如,我可以創建一個公共基類,然后為我的兩個不同的腳本任務擴展它。

然而,似乎SSIS並沒有真正為此做好准備。

有誰知道是否有辦法完成我想做的事情?

你是正確的,沒有直接從SSIS直接這樣做的方法。

在最近的一個項目中,我們采用了兩種不同的方法,根據您的需要,它們都能很好地工作:

  1. 創建一個實用程序類(作為一個簡單的類庫)並從腳本任務中引用它。 這與其他任何類型的引用幾乎完全相同。 如果您使用.NET 3.5,請記住您必須在腳本任務中手動更新版本,因為SSIS默認為2.0。 我們還發現,如果我們想要在實用程序程序集中使用某種方式的可重用性(不依賴於硬編碼的變量名等),那么程序包仍然必須具有相當大量的“設置”樣板才能使用實用程序腳本。

  2. 創建自定義數據流組件。 這是一個涉及更多的過程,但最終將在避免代碼重復方面做到最好。 通常,對實際數據流進行編碼非常簡單,與腳本組件沒有太大區別,但是您需要的各種設置代碼往往會使事情變得復雜。 當出現問題時,SSIS也沒有太多的支持。 導致我們項目的很多偵探工作。

如果你計划使用很多東西,並且盡可能地去掉樣板代碼,那么2是首選。 如果在這里和那里使用了幾個地方,請考慮1的簡單方法。

我很確定可以在SSIS腳本中訪問.NET程序集。 所以你可以這樣做。 請參閱SQL Server Central上的文章“使用SSIS訪問.NET程序集”

這並不能完全解決您的問題,但它確實有助於您不必在每次需要時重新創建所有類(我也不想為當前項目部署引用的程序集)。 首先,您需要一個類的主副本,您可以使用下面相同的過程從現有的腳本任務中復制它們,但反之亦然。

  1. 打開腳本任務的編輯器,在Property Explorer上單擊項目文件(st_ [Guid]),在Properties窗口中,您將看到Project Folder位置。 (每次編輯腳本任務時都會重新創建此位置)

  2. 在資源管理器中,將您的類復制到此文件夾

  3. 在Project Explorer中,單擊“顯示所有文件”圖標

  4. 右鍵單擊您的文件並添加到Project

我相信你必須創建一個程序集或web服務才能工作。

可能為時已晚,無法回答這個問題,但您可以點擊解決方案並在那里添加課程。 然后,當您進入腳本時,您可以說添加現有對象並搜索您之前創建的該類。 對我來說,它是由項目的解決方案找到的。 沒有經歷過部署或任何事情,但至少你可以通過各個腳本訪問該類。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM