在我的Windows类库(由MVC网站使用)中,我安装了NugetPackage Microsoft.SqlServer.Types (Spatial).
现在,使用ado.net我试图通过执行以下操作来读取值:
protected SqlGeography MapSqlGeography(DbDataReader reader, string key)
{
return reader[key] is DBNull ? null : (SqlGeography)reader[key];
}
Run Code Online (Sandbox Code Playgroud)
如果我在此行中添加制动点并在visual studio观察窗口中输入:"reader [key]",我可以看到正确的Point(XXXX,XXX)类型:" object {Microsoft.SqlServer.Types.SqlGeography}"
但是,一旦我尝试进行演员,我就会出现以下错误:
(SqlGeography)reader[key] The type 'Microsoft.SqlServer.Types.SqlGeography' exists in both
'Microsoft.SqlServer.Types.dll' and
'Microsoft.SqlServer.Types.dll'
Run Code Online (Sandbox Code Playgroud)
主要的奇怪事实是dll完全一样......
据我所知,这个命名空间/类名只有一个"源",它不应该重复....
我的"使用"是:
using Microsoft.SqlServer.Types;
using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Data.SqlClient;
using System.Threading.Tasks;
Run Code Online (Sandbox Code Playgroud)
关于如何解决这个问题的任何想法?谢谢.
更新#1
我卸载了NugetPackage`Microsoft.SqlServer.Types(Spatial)',而是尝试了一个名为:'Microsoft.SqlServer.Types(Unofficial)',甚至在清理了所有以前的文件夹/文件并清理了"bin/obj"之后",我仍然有完全相同的例外......
我现在只是看到了这个原因......任何想法都会非常感激.
更新#2
刚试过用 extern alias destination;
return reader[key] is DBNull
? null
: (destination.Microsoft.SqlServer.Types.SqlGeography)reader[key];
Run Code Online (Sandbox Code Playgroud)
有例外:
Cannot cast 'reader[key]' (which has an actual type of 'Microsoft.SqlServer.Types.SqlGeography')
to
'Microsoft.SqlServer.Types.SqlGeography'
Microsoft.SqlServer.Types.SqlGeography
Run Code Online (Sandbox Code Playgroud)
运行时使用以下步骤来解析程序集引用:
现在,检查您是否引用了多个程序集(如 Damien_The_Unknowner 在评论中所说),或者您没有为该程序集设置特定版本。
您还可以尝试使用程序集绑定日志查看器 (Fuslogvw)来准确查看加载的内容以及搜索路径。
| 归档时间: |
|
| 查看次数: |
1214 次 |
| 最近记录: |