我真的很喜欢通过提供 OverridePriority 属性来覆盖 Kephas 框架中的服务。但是,我需要某些服务不再被覆盖,以禁止插件中的某些外部代码覆盖我的安全服务。我怎样才能做到这一点?
问问题
18 次
1 回答
1
最简单的答案是:为您的服务提供最高的覆盖优先级。
[OverridePriority(Priority.Highest)]
public class MyServiceImpl : IMyService {
// ...
}
但是,如果以最高优先级注册了多个服务,则可能会出现问题,在这种情况下AmbiguousMatchException
会抛出 an。我的意思是,你应该控制你的代码以避免这种情况。如果您认为应用程序运行时可能会加载恶意程序集,请提供您自己的AppRuntime
服务,该服务可能会在加载程序集之前对其进行检查。
检查https://github.com/kephas-software/kephas/wiki/Application-Services#override-priority以获取有关此主题的更多信息。
于 2019-03-04T21:05:21.977 回答