You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET中使用Amazon Translate正式性设置触发NullReferenceException

解决Amazon Translate .NET SDK中设置正式性时的NullReferenceException异常

问题根源

TranslateTextRequest的Settings属性默认未实例化(值为null),直接访问其Formality或Profanity属性会触发空引用异常。

正确实现代码

必须先实例化TranslationSettings对象,再为其属性赋值:

using (var client = new AmazonTranslateClient(awsCredentials, selectedRegion))
{
    var request = new Amazon.Translate.Model.TranslateTextRequest();
    request.Text = toTranslate;
    request.SourceLanguageCode = sourceLanguage; 
    request.TargetLanguageCode = translateLanguage; 

    // 先实例化Settings对象,再设置正式性
    request.Settings = new Amazon.Translate.Model.TranslationSettings();
    request.Settings.Formality = "FORMAL"; // 可选值:"FORMAL" 或 "INFORMAL"

    var response = client.TranslateTextAsync(request).GetAwaiter().GetResult();
    // 如需查看服务实际应用的设置,可读取response.AppliedSettings,无需手动赋值
    var appliedFormality = response.AppliedSettings?.Formality;
}

关于response.AppliedSettings的说明

AppliedSettings是AWS服务返回的只读属性,用于告知你本次翻译实际应用的设置,不能手动赋值。如果服务未返回相关设置(比如目标语言不支持正式性定制),该属性可能为null,建议使用空值运算符?.安全访问。

额外注意

确保你指定的目标语言支持正式性设置(如荷兰语、韩语、墨西哥西班牙语等),否则该设置会被忽略,但不会触发异常。

内容的提问来源于stack exchange,提问作者Thor2020

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 11:45:35