Привет, есть объект DTO с множеством свойств разных типов: string
, int
или bool
и т. Д.
Я бы хотел использовать двойные кавычки только для свойств string
.
В Configuration.ShouldQuote
все значения параметров field
были преобразованы в string
, поэтому нет никакого способа узнать, был ли исходный тип из DTO string
, int
или bool
.
Есть ли способ найти базовый тип свойства в DTO, чтобы я мог передать true
из Configuration.ShouldQuote
только для полей, которые изначально были типа string
?
public class TestDTO
{
public string Field1 { get; set; }
public int Field2 { get; set; }
public bool Field3 { get; set; }
}
var rawData = new[]
{
new TestDTO { Field1 = "Field1", Field2 = 1, Field3 = true },
new TestDTO { Field1 = "Field2", Field2 = 10, Field3 = false }
};
using (var writer = new StreamWriter("file.csv"))
{
using (var csv = new CsvWriter(writer))
{
csv.Configuration.ShouldQuote = (field, context) =>
{
return field is string; // doesn't work as all fields at this point are strings
};
csv.WriteRecords(rawData);
}
}