我们有一个类型的属性,long?充满了int.
当我直接设置属性obj.Value = v;但是当我尝试通过反射设置属性时,这工作正常,info.SetValue(obj, v, null);它给了我以下异常:
'System.Int32'类型的对象无法转换为'System.Nullable`1 [System.Int64]'类型.
这是一个简化的场景:
class TestClass
{
public long? Value { get; set; }
}
[TestMethod]
public void TestMethod2()
{
TestClass obj = new TestClass();
Type t = obj.GetType();
PropertyInfo info = t.GetProperty("Value");
int v = 1;
// This works
obj.Value = v;
// This does not work
info.SetValue(obj, v, null);
}
Run Code Online (Sandbox Code Playgroud)
为什么在直接设置属性时设置属性reflection时它不起作用?
我使用 next js 作为我的应用程序的基础。我的环境变量只要在 next js 的范围内读取就可以工作,但我需要在不使用 next js 的脚本中使用它们。
使用 dotenv 我们可以执行以下操作:
require('dotenv').config();
它解析环境配置文件并允许您从process.env.
因为我使用的是 next js,所以我更愿意使用它们的环境变量实现,而不是添加第二种方式来存储环境变量。
是否有等效的require('dotenv').config();for next js 或其他方法来加载 next js 范围之外的环境变量?