我试图创建一个T4模板,该模板生成用于调用我的解决方案中另一个项目中包含的存储过程的源代码。我能够成功枚举解决方案中的.sql文件,将它们添加到TSqlModel
,并使用该模型将存储过程列表检索为TSqlObject
个实例。现在,我需要枚举每个存储过程的参数,这就是我被挂断的地方。
当我调试模板时,我可以看到TSqlObject
实例具有ContextObject
属性,此属性包含生成我的代码所需的参数列表。但是,当我尝试从我的模板访问此属性时,编译器会抱怨该属性不存在:
错误1编译转换:' Microsoft.SqlServer.Dac.Model.TSqlObject'不包含' ContextObject'的定义没有扩展方法' ContextObject'接受类型' Microsoft.SqlServer.Dac.Model.TSqlObject'的第一个参数。可以找到(您是否缺少using指令或程序集引用?)d:\ Code \ cs \ test_sproccodegen \ CallingProject \ sproc_template.tt 34 111 CallingProject
我可以在调试时从立即窗口中访问此ContextObject
属性,但在编译时它不可用。
我做错了什么?
答案 0 :(得分:4)
答案 1 :(得分:1)
这是威尔在问题评论中提到的内部方法。您应该使用公共API。以下文档应该可以帮助您入门: