草庐IT

C++进阶-3-4stack容器、queue容器

全部标签

c# - 如何使用 WebAPI、WCF、SignalR 和后台任务在 MVC Web 应用程序中配置简单的注入(inject)器容器和生活方式

简单的注入(inject)器文档提供了关于如何为WebRequest、WebAPI、WCF等设置容器的很好的示例,但这些示例一次只针对一种技术/生活方式。我们的Web应用程序同时使用了其中的大部分!我不清楚如何配置容器以适应多种生活方式。假设我有一个带有WebAPI的MVC项目。我有以下对象:MyDbContext:我的实体代码优先数据库上下文由MyDataProvider实现的IMyDataProvider:包含查询逻辑并使用MyDbContextMyController:使用IMyDataProvider的MVCControllerMyApiController:使用IMyData

c# - stack.ToList() – 元素顺序?

使用.ToList()时Stack上的扩展方法,结果是否与弹出每个元素并添加到新列表(与推送的相反)相同?如果是这样,这是因为它真的在遍历每个元素,还是它在内部反向存储元素并将数组滑入新的List中?? 最佳答案 Stack本身没有ToList方法,它是来自Enumerable的扩展方法类(class)。因为这些扩展方法只处理IEnumerable,可以安全地假设ToList迭代堆栈的项目以创建新列表(或者至少表现得像它会的那样-Enumerable方法有时会测试参数的类型并使用优化的实现)。有趣的是,文档似乎没有直接说明堆栈的枚举

c# - 从仅给定 Type 实例的 MEF 容器中获取导出

我有一个场景,我必须从我的CompositionContainer实例中导出,但我只有一个Type可以使用;我在编译时不知道类型,因此我无法以正常的通用方式检索导出的对象。通常你会这样做:_container.GetExportedObject();但就我而言,我有这个:TypesomeType=...;_container.HowDoIGetTheExport(someType);有什么想法吗? 最佳答案 找到答案:varexport=_container.GetExports(someType,null,null).FirstO

c# - 在 Silverlight 和 MVVM 的组合根中保持 DI 容器的使用

我不太清楚如何设计,所以我在Silverlight+MVVM应用程序的组合根中保留对DI容器的引用。我有以下简单的使用场景:有一个主视图(可能是一个项目列表)和一个为单个项目打开编辑View的操作。因此主视图必须在用户执行操作(例如单击某个按钮)时创建并显示编辑View。为此,我有以下代码:publicinterfaceIView{IViewModelViewModel{get;set;}}然后,对于我需要能够创建的每个View,我都有一个抽象工厂,就像这样publicinterfaceISomeViewFactory{IViewCreateView();}此工厂随后被声明为“父”Vi

c# - 奇怪的 Queue<T>.Enqueue(T item) 代码

在使用ILSpy进行反射时,我在Queue.Enqueue(Titem)中找到了这行代码-方法:if(this._size==this._array.Length){intnum=(int)((long)this._array.Length*200L/100L);if(num我只是想知道为什么有人会这样做?我认为这是某种整数溢出检查,但为什么要先乘以200L然后除以100L?这可能是早期编译器的问题吗? 最佳答案 通常先乘以再除以100是百分比计算-也许在原始代码中有一些constXxxPercentage=200或类似的东西。编译

c# - 是否可以从 Autofac 容器构建器中删除现有注册?

类似的东西:builder.RegisterType().As();builder.RegisterType().As();builder.DeRegisterType().As()varcontainer=builder.Build();vartypes=container.Resolve>();Assert.IsTrue(types.Count==1);Assert.IsTrue(types[0].GetType==typeof(MyType2));场景:我经历了一堆程序集,并且在我进行过程中注册了类型,但我想确保我只有一个给定类型的实现。我需要在创建容器之前执行此操作。我可以自己

c# - 依赖注入(inject)容器?它有什么作用?

我一直在阅读有关DI的资料,它似乎是一个足够简单的概念。我没有得到的是容器。假设我想创建自己的容器。使用了像“检测”这样的动词,但我不明白容器是如何“检测”到一个新的依赖对象已创建并知道注入(inject)它的依赖项的。在我看来,容器就像是一家美化的工厂。任何人都可以解释容器的实际实现方式,或者可以为我指出一种资源吗?谢谢! 最佳答案 这取自WindsordocumentationInversionofControlInversionofControlisaprincipleusedbyframeworksasawaytoallow

C#:通常首选哪种类型的数据容器?

创建一个简单的数据容器类时,应该是什么?类还是结构?可变的还是不可变的?带或不带非空构造函数?上面的例子:structMutableStruct{publicstringText{get;set;}publicintNumber{get;set;}}structImmutableStruct{publicstringText{get;privateset;}publicintNumber{get;privateset;}publicImmutableStruct(stringtext,intnumber):this(){Text=text;Number=number;}}structM

c# - 谁能详细地向我解释如何使用 IOC 容器?

我通过参数和构造函数广泛使用依赖注入(inject)。我在这个程度上理解了这个原则,并对此感到满意。在我的大型项目中,我最终注入(inject)了太多依赖项(任何达到两位数的东西都感觉很大-我喜欢术语“通心粉代码”)。因此,我一直在考虑IOC容器。我已经阅读了一些关于它们的文章,到目前为止我还没有看到好处。我可以看到它如何帮助发送相关对象组或一遍又一遍地获取相同的类型。我不确定他们将如何在我的项目中帮助我,我可能有一百多个类实现相同的接口(interface),并且我以不同的顺序使用所有这些类。那么,谁能给我指点一些好的文章,这些文章不仅描述了IOC容器的概念(最好不要特别炒作),而且

c# - 如何获得当前的 CaSTLe Windsor 容器?

我是CaSTLeWinsorNoob。我有一个一团糟的WebForm项目。我正在尝试解决测试用户注册的依赖性。如何到达当前的WindsorContainer?IWindsorContainercontainer=???;IRegistrationLogicregistrationLogic=container.Resolve();_registrationLogic.Register();这是我的Bootstrap:publicclassWindsorConfigTask:ICastleBootstrapperTask{publicvoidExecute(){Container.Add