自定义LocationResourceManager未生效,BotBuilder-Location本地化提示异常求助
解决BotBuilder-Location本地化提示不生效的问题
你遇到的问题根源在于用new关键字声明的TitleSuffix字段只是隐藏了基类的同名成员,而BotBuilder-Location控件内部实际调用的是基类LocationResourceManager中的虚拟属性,所以你的自定义值并没有被真正使用到。
正确的实现方式
你需要重写LocationResourceManager中的虚拟属性,而不是用new隐藏字段。下面是修正后的代码:
public class MyLocationResourceManager : LocationResourceManager { // 重写基类的虚拟属性,替代new关键字声明字段的方式 public override string TitleSuffix => "New message"; }
验证构造函数传入
确保你在创建LocationDialog实例时,正确传入了自定义资源管理器的实例:
var locationDialog = new LocationDialog(new MyLocationResourceManager());
这样控件就会使用你自定义的TitleSuffix值,而不是默认的"Type or say an address"了。如果还需要本地化其他提示文本,只需要在MyLocationResourceManager中重写对应的虚拟属性即可(比如PromptForPostalCode、PromptForCity等)。
内容的提问来源于stack exchange,提问作者user3740951
相关产品推荐
相关产品推荐

