c# - SSIS 和重新使用 C#

标签 c# ssis code-reuse

我是 SSIS/C# 的新手(我通常是 Java 开发人员),如果这是一个非常愚蠢的问题,我深表歉意。

问题本质上是这样的:我有两个数据流任务,它们加载数据并将它们导出为传统的平面文件格式。格式化由脚本任务 (C#) 完成。

我想做的是在两者之间共享一些通用代码。例如我可以创建一个公共(public)基类,然后为我的两个不同的脚本任务扩展它。

然而,似乎 SSIS 并没有真正为此做好准备。

有谁知道是否有办法完成我想做的事情?

最佳答案

您是正确的,没有直接从 SSIS 执行此操作的直接方法。

在最近的一个项目中,我们采用了两种不同的方法,根据您需要执行的操作,这两种方法都非常有效:

  1. 创建一个实用程序类(作为一个简单的类库)并从您的脚本任务中引用它。这与任何其他类型的引用几乎相同。如果您使用 .NET 3.5,请记住您必须在脚本任务中手动更新版本,因为 SSIS 默认为 2.0。我们还发现,如果我们想要在实用程序集中使用某种方式的可重用性(不依赖于硬编码变量名等),那么该包仍然必须具有相当大量的“设置”样板文件才能使用实用程序脚本。

  2. 创建自定义数据流组件。这是一个复杂得多的过程,但最终会在避免代码重复方面做到最好。通常,实际数据流的编码相当简单,与脚本组件没有太大区别,但您需要的各种设置代码往往会使事情变得复杂。当出现问题时,SSIS 也没有太多支持。为我们的项目带来了大量侦探工作。

如果您打算大量使用某些东西,并且致力于尽可能地摆脱样板代码,则 2 是首选。如果它在几个地方被使用,请考虑 1 的简单方法。

关于c# - SSIS 和重新使用 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2177552/

相关文章:

sql-server - SQL Server 2016 : create credential and add SQL Server Agent proxy for it

sql-server - 在 ssis 中导出到 csv 时包括前导零

java - 如何重用不同类中的方法

php - 浏览器/服务器上的相同代码

c# - 使用 C# 在 Windows 7 中创建 Metro 风格的 Winform

c# - 我如何对这个 LINQ 查询进行 GroupBy?

c# - 自定义 AppDomain 和 PrivateBinPath

c# - 软件自动更新

sql-server - SSIS 日志记录 - 捕获变量?

javascript - 简单的可重用的 JavaScripttoggle() 脚本?