大多数时候我使用类似下面的东西来访问我的Web API项目中的JsonFormatter。
var xxx = config.Formatters.JsonFormatter;
(其中config
是HttpConfiguration
的一个实例。)但是,我看到其他一些代码可以抓住它:
var xxx = config.Formatters.OfType<JsonMediaTypeFormatter>().First();
第一个选择第二个例子背后是否有任何可能的推理?也许JsonFormatter
属性在某些时候不可用?
答案 0 :(得分:0)
config.Formatters.JsonFormatter
内部does almost the same thing:
public JsonMediaTypeFormatter JsonFormatter
{
get { return Items.OfType<JsonMediaTypeFormatter>().FirstOrDefault(); }
}
我认为您提供的代码的唯一区别是,如果由于任何原因HttpConfig.Formatters
属性没有任何JsonMediaTypeFormatter
,则对JsonFormatter
的调用将返回null
,而config.Formatters.OfType<JsonMediaTypeFormatter>().First();
将抛出异常。