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