情况:
我正在寻找一个框架,我将在其中处理数据。数据紧缩的输出将是一个字符串(我的大部分程序都需要它)。我将使用其他人制作的数据处理器。
我有一个看起来像这样的界面:
public interface IDataCruncher {
string Execute( ICruncherInput input );
}
问题:
由于每个 DataCruncher 的执行方式不同并且需要不同的输入,因此我采用了将信息传递为 as 的方法dictionary<string, object>
,但是打包/解包过程实施起来很繁琐,并且对于打包材料而言编译不安全(您可能拼错字典键,或者忘记一个,导致数据处理器崩溃)。
public interface ICruncherInput {
Dictionary<string, object> Data { get; }
}
问题:
是否可以在编译时安全的情况下将数据传递给 Data Cruncher 实现,或者至少比从对象强制转换更安全?
有没有办法在代码中定义这些关键合约?(而不是假设字典将包含我需要的键,并在代码之外的文档中定义键)