我想补充我在 App.config 文件的 UnicastBusConfig 部分中订阅的端点,以添加到另一个队列中进行订阅。
为此,我添加了一个自定义配置源,如下所示
public class MyConfigSource : IConfigurationSource
{
public T GetConfiguration<T>() where T : class, new()
{
// the part you are overriding
if (typeof(T) == typeof(UnicastBusConfig))
{
var config = ConfigurationManager.GetSection(typeof(T).Name) as UnicastBusConfig;
config.MessageEndpointMappings.Add(new MessageEndpointMapping() { Endpoint = "MyQueue", Messages = "MyMessageNamespace" });
}
// leaving the rest of the configuration as is:
return ConfigurationManager.GetSection(typeof(T).Name) as T;
}
}
但是,当我在现有 MessageEndpointMappings 集合上调用 Add 时出现异常:
启动端点时出现异常,已记录错误。原因:配置是只读的。
有没有更好的方法来加载现有配置并在代码中添加位?