但程序调试时总是报"对象与目标类型不匹配

在调试程序时遇到'对象与目标类型不匹配'的问题,排查后发现可能与ObjectDataSource控件的TypeName属性设置有关。根据MSDN文档和《ASP.NET 2.0技术内幕》,当类型位于App_Code目录下时,TypeName应只包含类名,否则需提供完整的[classname, assembly]格式。修改TypeName后,问题得到解决。" 117215678,10965877,数据库管理:DDL语句实战——库与表的操作,"['数据库', 'SQL', 'DDL', '数据管理']

但程序调试时总是报"对象与目标类型不匹配"的错误,知道是类型不对,但当时找了半天毛病,就是不知道是那里不对,最后怀疑是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>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值