FastReflection
旧的 .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);