我能找到的FieldInfo
文档没有比较和对比这两种方法。我有兴趣了解什么时候应该使用另一个(最好是一个小代码片段)。
SetValueDirect接受一个TypedReference参数,因此它将在需要变量参数互操作性时使用。它不执行值的装箱/拆箱操作,也不执行访问检查。它比SetValue运行得快。
另一方面,SetValue几乎可以对其他所有东西进行操作。它在需要的地方执行参数的装箱/拆箱,并检查访问。
在这里和这里都有讨论类型引用的SO -两者都有代码示例。