问题标签 [fastmember]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
347 浏览

c# - 检查属性是否为只读

我有这段代码使用反射,我决定用 FastMember 替换它。

这是我的代码:

通过反射:

带有星星的那一行将通过这一行来解决:

FastMember 是否也提供了一些优雅的解决方案?

0 投票
1 回答
1204 浏览

c# - C# Dapper 和 FastMember - 不支持指定的方法

我有一个 C# .NET Core 2.0 Web API 项目(作为微服务实现)。

我在我的存储库层中使用 NuGet 包“Dapper”和“FastMember”(最新版本)来尝试IEnumerable<T>通过 FastMember 提供的 ObjectReader 将 an 转换为 DataTable,这样我就可以利用 Dapper 的内置 ICustomQueryParameter SqlMapper 来传递我在 SQL Server 中使用的存储过程的表值参数。

当我执行和调试我的代码时,它会在 FastMember ObjectReader 尝试加载到 DataTable: 的行上引发异常table.Load(reader);

这是我的 Dapper 包装器/扩展方法,其中包含有问题的行:

这是我使用上述扩展方法的 Dapper 调用:

这是我抛出的 C# 异常的堆栈跟踪:

异常消息是:Specified method is not supported.

有人可以帮我解决这个错误吗?.NET Core 2.0 不支持这种方法对我来说没有意义。我已经通过 SqlBulkCopy 在其他 .NET Core 2.0 应用程序中成功使用了 FastMember。但这是我第一次尝试将它与 Dapper 一起使用。

任何帮助深表感谢!提前致谢。

0 投票
1 回答
643 浏览

c# - 如何使用 FastMember 创建具有子对象的对象的读取器

我们需要SQLBulkCopy一个我们拥有的集合。由于我们需要一个 IDataReader 来使用 SQLBulkCopy,因此我尝试使用 FastMember。据我了解,我们可以使用从 IEnumerableFastMember创建一个。IDataReader

所以我的代码是——

但问题是每条记录都有一个名为的子对象,其中包含我希望在数据读取器中拥有的更多属性,以便它们可以插入到数据库中的表中。但是找不到办法弄平IDataReader

0 投票
1 回答
1255 浏览

c# - 参数超出范围异常,参数名称:名称

每次尝试使用不同的行执行以下代码;得到同样的例外:

并得到这个例外:

请帮助我解决这个问题。

0 投票
1 回答
54 浏览

c# - 加入表时丢弃“匿名”异常

我很困惑,例如如何在不出现“匿名”异常的情况下加入两个表;例如以下代码部分:

执行上述代码后,我得到这个异常:

0 投票
1 回答
631 浏览

c# - FastMember:指定的参数超出了有效值的范围。参数名称:名称

我正在尝试使用CsvHelper导入 CSV 文件并将其写入我的 SQL 数据库。导入的数据不属于任何预定义的类,必须在运行时确定。很多论坛都指向使用 FastMember 来执行此操作,但我无法使其工作。

由于我没有预定义的类,因此我正在使用以下代码读取 CSV:

然后我使用 fastmember 的 ObjectReader 来构造数据

在这个阶段,我收到错误“指定的参数超出了有效值的范围。参数名称:名称”

我将在下面包含整个代码片段,但 copyParameters 是一个字符串数组,其中包含与 CSV 中完全相同的所有列。

用于测试的小样本 CSV:

DateTime,Column1,Column2,Column3,Column4 1/8/2014 18:20,1,0,0.3,0 1/8/2014 18:21,1,0,0.3,0 1/8/2014 18:22, 1,0,0.2,0 1/8/2014 18:23,1,0,0.2,0 1/8/2014 18:24,1,0,0.2,0 1/8/2014 18:25,1, 0,0.2,0

这是来自 csv 阅读器和复制参数的数据

这是完整的代码:

0 投票
0 回答
291 浏览

c# - 有没有办法在扩展/动态上使用 FastMember ObjectReader

有没有办法ObjectReader.CreateExpandoObject.

这是我用来测试的一个简单的测试用例:

看来问题出GetMembersTypeAccessor. 由于ExpandoObject继承自IDictionary<string, object>,因此该类型没有属性,并且 FastMember 无法序列化字典的每个键。是否有解决方法来实现它?

基本上,我执行翻译成expandos的SQL查询。我想用来ObjectReader将结果批量备份到数据库中。

0 投票
1 回答
288 浏览

c# - 使用 FastMember 从集合中获取值

我使用 FastMember 从对象和嵌套对象中获取值。如果属性是 astringint一切正常。但现在我也想获取集合的值。到目前为止,这是我的代码:

一个对象可能如下所示:

这意味着专业会导致问题。

任何建议我如何解决这个问题?谢谢!

0 投票
1 回答
409 浏览

c# - 使用 FastMember 递归复制属性

我有这个类的两个对象:

现在我想用 FastMember 遍历两个对象实例的所有属性,并将属性从 复制object 1object 2.

这是我到目前为止得到的(不工作!)

这段代码显然不起作用......有什么想法吗?谢谢!

0 投票
0 回答
163 浏览

c# - DataTable.Load() 将枚举转换为整数

SqlBulkCopy用来将一些数据插入到表中。我的数据对象有一个枚举属性。我想将其保存为值 (G),而不是 int (1)。

在我调用dataTable.Load()时,属性从“G”变为 1。显然这就是发生的情况?
https://github.com/npgsql/npgsql/issues/1220

有办法解决吗?我最初认为这可能是 FastMember (Marc Gravell) 的问题ObjectReader,但reader仍然具有“G”的值,所以这就是DataTable问题.Load()所在。

如何将枚举保存为字符串而不是 int?

我可以尝试一些后备选项:

  • 不使用SqlBulkCopy
  • 创建一个新类并将原始类映射到它,其中新类具有作为字符串的枚举属性。然后用新的类保存?

这是枚举:

这是我要保存的对象的属性: