C# HanaDecimal没有可序列化的属性

C# HanaDecimal没有可序列化的属性,c#,hana,C#,Hana,我正在尝试将Dapper与Hana provider结合使用(Hana.Net Core 2.1 ADO.Net provider,参见SAP库“SAP Hana平台的SAP Hana客户端接口编程参考”)。使用casualDataReader时一切正常,但当我尝试使用包含decimal类型的实体类时,出现了一个问题: 公共类SomeType { 公共字符串文本{get;set;} 公共十进制值{get;set;} } var resultSet=hanaConnection.Query(“一些

我正在尝试将Dapper与Hana provider结合使用(Hana.Net Core 2.1 ADO.Net provider,参见SAP库“SAP Hana平台的SAP Hana客户端接口编程参考”)。使用casual
DataReader
时一切正常,但当我尝试使用包含decimal类型的实体类时,出现了一个问题:

公共类SomeType
{
公共字符串文本{get;set;}
公共十进制值{get;set;}
}
var resultSet=hanaConnection.Query(“一些hana sql”);
很遗憾,将引发以下异常:

在程序集“Sap.Data.Hana.Core.v2.1”中键入“Sap.Data.Hana.HanaDecimal”, 版本=2.4.151.0,区域性=中性,PublicKeyToken=0326b8ea63db4bc4' 未标记为可序列化

我尝试为
十进制
创建自己的类型处理程序,但运气不佳:

public class DecimalTypeHandler : SqlMapper.TypeHandler<decimal>
{
    public override decimal Parse(object value)
    {
        return Convert.ToDecimal(value);
    }

    public override void SetValue(IDbDataParameter parameter, decimal value)
    {
        parameter.Value = value;
    }
}
公共类DecimalTypeHandler:SqlMapper.TypeHandler
{
公共重写十进制解析(对象值)
{
返回Convert.ToDecimal(值);
}
公共覆盖无效设置值(IDbDataParameter参数,十进制值)
{
参数值=值;
}
}
映射器甚至没有被调用,所以我假设在从数据库获取数据时抛出了这个错误


由于我无法将
Serializable
属性添加到专有的、源代码已关闭的程序集,是否有任何解决方法?

在查询之前添加类型处理程序:

 SqlMapper.AddTypeHandler(new DecimalTypeHandler ());
 var resultSet = hanaConnection.Query<SomeType>("some hana sql");
SqlMapper.AddTypeHandler(新的DecimalTypeHandler());
var resultSet=hanaConnection.Query(“一些hana sql”);

在查询之前添加类型处理程序:

 SqlMapper.AddTypeHandler(new DecimalTypeHandler ());
 var resultSet = hanaConnection.Query<SomeType>("some hana sql");
SqlMapper.AddTypeHandler(新的DecimalTypeHandler());
var resultSet=hanaConnection.Query(“一些hana sql”);

感谢Marc Gravell指导我查看堆栈跟踪,结果发现序列化是由其他人添加的,与dapper无关


所有操作都是使用问题中提供的
DecimalTypeHandler

感谢Marc Gravell指导我查看堆栈跟踪,结果发现序列化是由其他人添加的,与dapper无关


所有操作都使用问题中提供的
DecimalTypeHandler

HanaDecimal是一种结构:@jdweng still-dapper检测到它没有标记
[Serializable]
属性。@pwas hi;这里的主要整洁的作者;我可以查看该异常的堆栈跟踪吗?我不记得曾经检查或关心过
[Serializable]
;事实上:
Find all“serializable”、子文件夹、Find Results 1、完整解决方案、“*.*”匹配行:0匹配文件:0搜索的总文件数:196
只要属性/类是公共的,序列化程序将在没有[serializable]的情况下工作。问题是类型错误。它不是小数,而是一种结构。@pwas k;删除标记,然后-因为这似乎不相关HANADECIMAL是一个结构:@jdweng still-dapper检测到它没有标记
[Serializable]
属性。@pwas hi;这里的主要整洁的作者;我可以查看该异常的堆栈跟踪吗?我不记得曾经检查或关心过
[Serializable]
;事实上:
Find all“serializable”、子文件夹、Find Results 1、完整解决方案、“*.*”匹配行:0匹配文件:0搜索的总文件数:196
只要属性/类是公共的,序列化程序将在没有[serializable]的情况下工作。问题是类型错误。它不是小数,而是一种结构。@pwas k;删除标签,然后-因为这似乎没有关系,我添加了它,如问题中所述-没有运气。请看更新的答案;尝试重新定义仍不工作的Handler。甚至没有调用类型处理程序-首先抛出异常。我已经按照问题中的说明添加了它-没有运气。请查看更新的答案;尝试重新定义仍不工作的Handler。甚至没有调用类型处理程序-首先抛出异常。