让我们来看看网格填充的一个例子。
我们有列类。 它有一个委托FormatCell,这需要一些数据 ,并将其转换为字符串 。 FormatCell委托是在设计时未知的-它可能是由插件设置。
public class ColumnFormatter
{
public Func<Data, string> FormatCell {get; set;}
//...
}
这里是这样的列是如何使用的一个例子。
public class Table
{
public List<Column> Columns;
public List<List<string>> BuildTable(List<Data> dataRows)
{
var table = new List<List<string>>();
foreach (var data in dataRows)
{
var line = new List<string>();
foreach (var column in Columns)
{
line.Add(column.FormatCell(data));
}
table.Add(line);
}
return table;
}
}
现在,每列应该保存它的状态。 而问题是如何序列化此FormatCell委托?
PS我知道这个问题,但我的问题是具体得多的情况。 也许一个人在这种情况下特定的可靠运行的解决方案?