我CsvHelper
用來匯入csv
檔案,為此我使用了一個映射類,如下所示:
private class MyClassMap : ClassMap<MyClass>
{
public MyClassMap ()
{
Map(m => m.Number).Name("Number");
Map(m => m.Name).Name("Name");
}
}
大多數類包含更多的屬性。所以我首先做的是創建一個Attribute
類并將該屬性添加到所有公共屬性中。所以我可以更改映射代碼:
private class MyClassMap : ClassMap<MyClass>
{
public MyClassMap ()
{
var properties = typeof(MyClass).GetProperties();
foreach (var property in properties)
{
var attr = property.GetCustomAttributes(typeof(HeaderAttribute), false).FirstOrDefault();
if (attr != null)
{
//Here what?
}
}
}
}
另外,我會將上面的ctor代碼作為擴展方法。
Map()
在這種情況下我將如何使用該方法?
uj5u.com熱心網友回復:
假設您HeaderAttribute
接受 aHeader
作為引數并通過Header
property公開它:
foreach (var property in properties)
{
var attr = property.GetCustomAttributes(typeof(HeaderAttribute), false).FirstOrDefault() as HeaderAttribute;
if (attr != null)
{
//Here we use the Map method overload that takes a Type and a MemberInfo
this.Map(typeof(MyClass), property).Name(attr.Header);
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/386496.html
上一篇:將lambda轉換為sql查詢
下一篇:資料表上的分組依據