我将我的应用程序的配置详细信息存储在如下表中:
SettingName SettingValue
-------------------- ---------------------
PostsPerPage 10
EmailErrors True
AdminEmailAddress admin@admin.com
我的数据访问类说返回存储在表中的名称值集合/键值对设置。
将 namevaluecollection/keyvaluepair 映射到如下所示的强类型类的最佳方法是什么,该类的属性名称与 SettingName 列中的名称相同。
public class Settings
{
public int PostsPerPage{get;set;}
public bool EmailErrors{get;set;}
public string AdminEmailAddress{get;set;}
}
最佳答案
如果您的项目中有 Newtonsoft Json 库,这是另一个快捷方式 - 您可以将其用作翻译机制。不确定它在性能方面是否那么出色,但它非常简洁明了...
假设“form”是您的“NameValueCollection”对象...
// convert to a string/string dictionary and remove anynulls that may have been passed in as a string "null"
var formDictionary = form.AllKeys
.Where(p => form[p] != "null")
.ToDictionary(p => p, p => form[p]);
string json = JsonConvert.SerializeObject(formDictionary);
var myObject = JsonConvert.DeserializeObject<MyClass>(json);
关于c# - 如何将 namevaluecollection 自动映射到强类型类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2338220/