マネージコードにカスタムデータフローコンポーネントを実装しようとしています。これが私のカスタムデータフローコンポーネントです:
[DtsPipelineComponent(DisplayName = "RenameComponent", ComponentType = ComponentType.Transform)]
public class MapperComponent : PipelineComponent
{
List<IDTSVirtualInputColumn100> dontMapList;
public override void ProvideComponentProperties()
{
base.ProvideComponentProperties();
base.RemoveAllInputsOutputsAndCustomProperties();
IDTSInput100 input = ComponentMetaData.InputCollection.New();
input.Name = "Input";
IDTSOutput100 output = ComponentMetaData.OutputCollection.New();
output.Name = "Output";
output.SynchronousInputID = input.ID;
// Make the output asynchronous
output.SynchronousInputID = 0;
FindOldColumns(input);
}
}
それをコンパイルしてgacに登録し、C:\ Program Files \ Microsoft SQL Server \ 100 \ DTS\PipelineComponentsディレクトリに保存します。
次に、次のコードを実行して、コンポーネントをデータフロータスクに追加します。
private static IDTSComponentMetaData100 CreateRenameTransformation(MainPipe dataFlow, Train train)
{
IDTSComponentMetaData100 renameTransformation = dataFlow.ComponentMetaDataCollection.New();
// Set stock properties
renameTransformation.ComponentClassID = "Dexter.CustomComponents.MapperComponent";
renameTransformation.Name = "RenameTransformation";
renameTransformation.Description = "Rename and remove incompatible columns";
CManagedComponentWrapper instance = renameTransformation.Instantiate();
instance.ProvideComponentProperties();
return renameTransformation as IDTSComponentMetaData100;
}
実行時(パッケージを作成しようとすると)、次のエラーが発生します。0xC0048021 -1073446879 DTS_E_ERRORCOMPONENTコンポーネントが見つからないか、登録されていないか、アップグレードできないか、必要なインターフェイスがありません。このコンポーネントの連絡先情報は「%1」です。
ありがとう、