您的位置:首页 > 其它

如何为自定义属性提供表达式绑定支持

2009-06-21 12:57 239 查看
我们在SSIS的设计过程中,经常会用到表达式。我也经常在讲课的时候提到:变量和表达式是SSIS包的灵魂,只有掌握了这两个东西的使用,才能设计足够灵活的包。

那么,我们怎么样给自定义组件的自定义属性实现表达式绑定支持呢?

其实比较简单,我们只需要一句代码就可以了。不需要其他任何的具体实现

IDTSCustomProperty90folder=ComponentMetaData.CustomPropertyCollection.New();
folder.Name="Folder";
//folder.TypeConverter=typeof(FolderEnum).AssemblyQualifiedName;
folder.UITypeEditor=typeof(MyTypeUIEditor).AssemblyQualifiedName;
folder.ExpressionType=DTSCustomPropertyExpressionType.CPET_NOTIFY;


注意,只要给自定义属性指定一个ExpressionType即可。指定为NOTIFY

在BIStudio中测试效果





选中“数据流任务”,在属性窗口中,点击“Expressions”右侧的一个小按钮





在这里就可以与变量进行绑定。为了演示,我们准备一个变量:vFolder













到这里为止,我们就实现了自定义属性的表达式绑定
.csharpcode,.csharpcodepre
{
font-size:small;
color:black;
font-family:consolas,"CourierNew",courier,monospace;
background-color:#ffffff;
/*white-space:pre;*/
}
.csharpcodepre{margin:0em;}
.csharpcode.rem{color:#008000;}
.csharpcode.kwrd{color:#0000ff;}
.csharpcode.str{color:#006080;}
.csharpcode.op{color:#0000c0;}
.csharpcode.preproc{color:#cc6633;}
.csharpcode.asp{background-color:#ffff00;}
.csharpcode.html{color:#800000;}
.csharpcode.attr{color:#ff0000;}
.csharpcode.alt
{
background-color:#f4f4f4;
width:100%;
margin:0em;
}
.csharpcode.lnum{color:#606060;}

题外话:

我们之前探讨过自定义任务项(Task)的开发。这些自定义任务项的属性是如何与表达式绑定呢?

好消息是:自定义任务项(Task)的属性是自动可以与表达式绑定的。无需任何设计。例如我们来看一下我们之前写的那个“超强XML任务”





本文由作者:陈希章于2009/6/2112:56:50
发布在:http://www.cnblogs.com/chenxizhang/

本文版权归作者所有,可以转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

更多博客文章,以及作者对于博客引用方面的完整声明以及合作方面的政策,请参考以下站点:陈希章的博客中心
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: