symfony-dependency-injection
全部标签 在我的项目中我必须使用Quartz但我不知道我做错了什么。工作工厂:publicclassIoCJobFactory:IJobFactory{privatereadonlyIServiceProvider_factory;publicIoCJobFactory(IServiceProviderfactory){_factory=factory;}publicIJobNewJob(TriggerFiredBundlebundle,ISchedulerscheduler){return_factory.GetService(bundle.JobDetail.JobType)asIJob;}
我的问题如下:我有一个名为ApplicationController的基本Controller(ASP.NetMVCController),我希望我的所有Controller都继承自它。这个基本Controller有一个ILogger属性,标有[Dependency]属性。(是的,我知道我应该使用构造函数注入(inject),我只是对这个属性感到好奇)。我创建了容器,注册了类型,更改了默认工厂,一切都很好。问题是当我尝试在派生Controller中使用我的Logger属性时,它没有得到解决。我做错了什么?为什么容器在创建派生Controller时不解析基类依赖?代码示例:应用程序Con
假设我们有一个类publicclassMyClass{privatestring_val;publicMyClass(stringval){_val=val;}}和app.config(或web.config)有没有办法在Unity容器中注册类型MyClass并指向Unity从配置文件中为val构造函数参数注入(inject)值? 最佳答案 这很容易。C#代码:varcontainer=newUnityContainer();container.LoadConfiguration();MyClassmc=container.Reso
我正在使用EntityFramework构建一个存储库基类,其中所有实体存储库都将继承。我想使用Ninject使用依赖注入(inject)将DatabaseContext注入(inject)基类。我认为构造函数注入(inject)是正确的方法,但是在派生类中使用构造函数注入(inject)来执行此操作我将必须将参数传递给基类中的构造函数,但我不希望这样做。因此,Setter注入(inject)更合适?这是我的代码:publicabstractclassBaseRepository:IDisposablewhereTEntity:class{privatereadonlyDatabase
我有一个工厂类,它创建了几个不同类型的类。工厂在容器中注册。鉴于它们也具有依赖性,在工厂内部创建类的推荐方法是什么。我显然想避免对容器的依赖,但如果我新建这些类,那么它们将不会使用容器。例如publicclassMyFactory{publicIMyWorkerCreateInstance(WorkerTypeworkerType){if(workerType==WorkerType.A)returnnewWorkerA(dependency1,dependency2);returnnewWorkerB(dependency1);}}所以问题是我从哪里获得这些依赖项。一种选择是使它们成
我有VS2010专业版。我能做些什么来使用“依赖图”。我没有“建筑”版。有没有我可以使用的免费插件。如果没有,是否有任何免费的第3方工具可以帮助我做同样的事情。谢谢 最佳答案 我需要类似的东西,但不想为此付费(或安装)工具。我createdaquickPowerShellscriptthatgoesthroughtheprojectreferences并将它们吐出yuml.me改为友好格式:FunctionGet-ProjectReferences($rootFolder){$projectFiles=Get-ChildItem$r
在我的中型项目中,我为存储库、服务等使用了静态类,它实际上工作得很好,即使大多数程序员的期望相反。我的代码库非常紧凑、干净且易于理解。现在我尝试重写所有内容并使用IoC(控制反转),但我非常失望。我必须在每个类、Controller等中手动初始化许多依赖项,为接口(interface)添加更多项目等等。我真的没有看到我的项目有任何好处,而且似乎它造成的问题多于解决的问题。我在IoC/DI中发现了以下缺点:更大的代码量馄饨代码而不是意大利面条代码性能较慢,即使我要调用的方法只有一个依赖项,也需要在构造函数中初始化所有依赖项不使用IDE时更难理解一些错误被推送到运行时添加额外的依赖(DI框
publicstaticboolTruncateTable(stringdbAlias,stringtableName){stringsqlStatement=string.Format("TRUNCATETABLE{0}",tableName);returnExecuteNonQuery(dbAlias,sqlStatement)>0;} 最佳答案 对抗SQL注入(inject)的最常见建议是使用SQL查询参数(此线程中的几个人都建议过)。在这种情况下这是错误的答案。不能在DDL语句中使用SQL查询参数作为表名。SQL查询参数只能
我的目标是构造函数注入(inject)一组实现接口(interface)的对象。以下是我目前的方式。Container.RegisterInstance(ParseCompany(args[1]).RegisterInstance(ParseTargets(args[2])).RegisterInstance(newILoader[]{Container.Resolve(),Container.Resolve以这种方式在容器配置中调用Resolve是典型的还是有更标准的方式来完成同样的事情? 最佳答案 Unity天生就理解数组,因此
在C#.net平台上避免SQL注入(inject)的最佳方法是什么。如果有的话,请发布C#实现。 最佳答案 不需要算法-只是不使用字符串连接来构建SQL语句。请改用SqlCommand.Parameters集合。这会执行所有必要的值转义(例如将'替换为'')并确保该命令是安全的,因为其他人(即Microsoft)已经完成了所有测试.例如调用存储过程:using(varconnection=newSqlConnection("..."))using(varcommand=newSqlCommand("MySprocName",conn