但程序调试时总是报"对象与目标类型不匹配"的错误,知道是类型不对,但当时找了半天毛病,就是不知道是那里不对,最后怀疑是ObjectDataSource控件的TypeName属性,
先看看MSDN怎么说:
为
创建 ObjectDataSource 控件绑定到的对象的实例,控件在运行时使用反射加载由类型名称标识的类型。因此,TypeName
属性的值可以是位于 Bin 或 App_Code
目录中的代码的部分限定类型,也可以是在全局程序集缓存中注册的代码的完全限定类型名称。如果使用全局程序集缓存,必须将相应的引用添加到
Machine.config 或 Web.config 文件中的 assemblies 节。
ObjectDataSource控件 - 《ASP.NET 2.0技术内幕》描述:
ObjectdataSource
控件使用映射来定位和调用处理指定操作的方法。TypeName属性返回定义了要调用的类的程序集的完全限定名。如果该类定义在App_Code目录中,
则不需要指示程序集名称。否则,使用一个以逗号分隔的字符串,其形式为[classname,
assembly]控件使用映射来定位和调用处理指定操作的方法。
关键就在"如果该类定义在App_Code目录中,则不需要指示程序集名称。否则,使用一个以逗号分隔的字符串,其形式为[classname, assembly]."
不管怎么样,先将TypeName修改为[classname, assembly]形式,程序执行成功;但我的BLL就是放在App_Code文件夹下的,郁闷!!
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" SelectMethod="GetCreateTime" TypeName="ObjectDataSourceTest.App_Code.BLL, ObjectDataSourceTest"
OnObjectCreating="GetBLL" OnObjectDisposing="ReturnBLL"></asp:ObjectDataSource>