gpt4 book ai didi

c# - 在没有 controller/http.context 的情况下绑定(bind)模型

转载 作者:太空宇宙 更新时间:2023-11-03 14:33:01 25 4
gpt4 key购买 nike

我有一个名为“Channel”的模型,它有一堆字符串属性。

我从返回哈希表的数据源中获取数据。此表的键与我的模型的属性名称匹配。

如何将哈希表自动绑定(bind)到 Channel 模型?

ASP.NET MVC 中的绑定(bind)程序似乎可以执行此操作,但您需要在具有上下文的 Controller 中使用它。我不想将上下文传递到我的存储库中以使其在获取数据时起作用。 (虽然我想如果需要我可以)

最佳答案

该方法本身非常简单,您不能指望它有“现有”解决方案:

public static T Bind<T>(IDictionary<string, string> hash, T channel)
{
foreach (var item in hash)
{
var prop = typeof(T).GetProperty(item.Key);
prop.SetValue(channel, Convert.ChangeType(item.Value, prop.PropertyType), new object[0]);
}
}

这就是您需要的一切。现在您可以在没有任何 Controller 的情况下独立使用此方法,或者编写一个使用它的模型绑定(bind)器。

嵌套属性可以有更多的工作(你没有说你需要那个)但是使用递归编写需要多 5 分钟。

关于c# - 在没有 controller/http.context 的情况下绑定(bind)模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2144629/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com