Skip to content

FastReflection

🏷️ .NET Core C#

旧的 .NET 项目直接引用的 FastReflectionLib.dll 文件,迁移到 .NET Core 后已不能直接使用。
尝试安装了 Nuget 中如下两个 package。

1. FastReflection

使用起来感觉比之前的要简单方便。

csharp
using FastReflection;

var value = new FastProperty(propertyInfo).Get(instance);
new FastProperty(propertyInfo).Set(instance, value);

但是编译时会有警告(虽然在 nuget 上看是无依赖的):

warning NU1701: 已使用“.NETFramework,Version=v4.6.1”而不是项目目标框架“.NETCoreApp,Version=v2.1”还原包“FastReflection 1.0.0.20”。此包可能与项目不完全兼容。

2. ZKWeb.Fork.FastReflection

This is a FastReflection variant for the ZKWeb project.

使用方法同 FastReflectionLib.dll 相同,引用的命名空间(System.Reflection)也一致。
好处是代码不需要修改。

csharp
using System.Reflection;

var v = propertyInfo_source.FastGetValue(instance_source);
propertyInfo_dest.FastSetValue(instance_dest, v);