C#学习教程:防止SimpleInjector解析未注册服务时抛异常抛出异常?它现在似乎正在抛出它们,因为我有两个请求来获取一个实例,但它不存在并且正在抛出异常。有没有办法阻止默认行为,将其设置在某处或其他什么?绝对有一种简单的方法可以做到这一点。SimpleInjector.Container实现了System.IServiceProvider,它定义了一个对象GetService(Type)方法。当类型未注册时,此方法返回null。但是,IServiceProvider是显式实现的,这意味着它不会在正常使用中显示出来,因此您必须将Container转换为IServiceProvider,如下所示:IServiceProviderprovider=container;对象实例=provider.GetService(typeof(MyClass));或者你可以在此基础上定义一个扩展方法:publicstaticboolTryGetInstance(thisContainercontainer,outTServiceinstance)instance=(TService)provider.GetService(typeof(TService));返回实例!=空;}我必须承认这个功能有点隐藏。目前唯一解释该方法的地方是参考库。请注意,一般情况下,注册一个Null对象模式实现(没有任何行为的空实现),而不是调用TryGetInstance方法来实现TryGetInstance。注入Null对象可以防止您的应用程序担心空引用,从而使您的应用程序代码更易于理解和测试。以上就是C#学习教程:防止SimpleInjector在解析未注册服务时抛出异常。如果对大家有用,需要了解更多C#学习教程,希望大家多加关注——本文来自网络合集,不代表立场,如涉及侵权,请点击右边联系管理员删除。如需转载请注明出处: