为什么 IStringLocalizer 有时 returns 对象但有时 returns 字符串
Why IStringLocalizer sometimes returns object but sometimes returns string
我无法理解 IStringLocalizer 中的一件事。假设我有一个端点 returns 状态代码 200 和一些本地化字符串。
public async Task<IActionResult> Test()
{
return Ok(localizer["Localized Text"])
}
如果我这样做,我将收到一个对象,其中包含有关此定位器的一些信息
{
"name": "Localized Text",
"value": "Localized Text translated",
"resourceNotFound": false,
"searchedLocalization": "MyApi.Translations"
}
为了成为返回翻译文本的字符串,我需要添加 .Value
public async Task<IActionResult> Test()
{
return Ok(localizer["Localized Text"].Value)
}
(这个returns只有'Localized Text translated')
但是
如果我有一些 class 有一个字符串 属性
public class ResponseMessage {
public string Message {get; set;}
}
并且我将本地化符分配给它的字符串 属性,然后我不必添加 .Value
来接收相应的翻译
public async Task<IActionResult> Test()
{
return Ok(new ResponseMessage {
Message = localizer["Localized Text"]
})
}
我想知道,在文档的哪个位置描述了这种行为。因为现在它看起来像一个魔法。
IStringLocalizer
indexer returns an instance of LocalizedString
,这是您在第一个示例中直接 return 时序列化的内容。
对于您的其他场景,LocalizedString
通过其 implicit conversion operator 隐式转换为字符串。我假设隐式转换运算符只是 returns LocalizedString
值。
您可以查看 User-defined conversion operators page 以了解有关隐式转换的更多信息。
我无法理解 IStringLocalizer 中的一件事。假设我有一个端点 returns 状态代码 200 和一些本地化字符串。
public async Task<IActionResult> Test()
{
return Ok(localizer["Localized Text"])
}
如果我这样做,我将收到一个对象,其中包含有关此定位器的一些信息
{
"name": "Localized Text",
"value": "Localized Text translated",
"resourceNotFound": false,
"searchedLocalization": "MyApi.Translations"
}
为了成为返回翻译文本的字符串,我需要添加 .Value
public async Task<IActionResult> Test()
{
return Ok(localizer["Localized Text"].Value)
}
(这个returns只有'Localized Text translated')
但是 如果我有一些 class 有一个字符串 属性
public class ResponseMessage {
public string Message {get; set;}
}
并且我将本地化符分配给它的字符串 属性,然后我不必添加 .Value
来接收相应的翻译
public async Task<IActionResult> Test()
{
return Ok(new ResponseMessage {
Message = localizer["Localized Text"]
})
}
我想知道,在文档的哪个位置描述了这种行为。因为现在它看起来像一个魔法。
IStringLocalizer
indexer returns an instance of LocalizedString
,这是您在第一个示例中直接 return 时序列化的内容。
对于您的其他场景,LocalizedString
通过其 implicit conversion operator 隐式转换为字符串。我假设隐式转换运算符只是 returns LocalizedString
值。
您可以查看 User-defined conversion operators page 以了解有关隐式转换的更多信息。