某个项目遇到个ora的问题,打算先在开发环境中把托管odp组件更新为新的版本试一试。于是直接下载了新版本dll替换,但运行报错 System.MissingMethodException: 找不到方法:“xxxxx”。
甚是诡异,当下百思不得姐 (-_-!!! ...
静心打坐后试之,解开~~
【问题原因】
1. 基类使用的odp组件 和 派生类使用的组件版本不一致(基类项目引用改成了高版本odp后编译,但派生类的项目没有调整编译);
2. 派生类中操作基类中的 odp 对象(高版本),例如:
//基类定义了方法
protected Oracle.ManagedDataAccess.Client.OracleConnection GetConnection()
在基类里是 protected OracleConnectionV2 GetConnection()
在派生类里 OracleConnectionV1 = base.GetConnection(); //返回值类型是OracleConnectionV2
单独写了个验证程序:
1) 基类项目 ClassLibrary.dll
public class DbAccessBase
{
public string DBConnString { get; set; }
public DateTime GetDbTime()
{

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



