草庐IT

模板注入

全部标签

c# - 重构静态类以与依赖注入(inject)一起使用

我们需要在具有静态方法的代码中使用非托管库。我想在我的代码中将库操作作为依赖项引入。除了具有静态方法之外,该库还有一个初始化方法和一个设置方法,它们都是全局的。所以我不能只将它包装在一个实例类中,因为如果一个实例更改设置,所有其他实例都会受到影响,如果一个实例被初始化,所有其他实例将被重新初始化。我考虑过将其作为单例类引入。这样它将在一个实例类中,但只有一个实例,因此我不必担心更改设置或初始化。您如何看待这种方法?我对依赖注入(inject)模式还很陌生,我不确定单例模式是否是一个好的解决方案?对于类似的案例,您的解决方案是什么?编辑:初始化也需要一个参数,所以我不能只是锁定方法调用并

c# - 模型类(实体)中的依赖注入(inject)

我正在使用EntityFrameworkCode-First构建ASP.NETCoreMVC应用程序。我实现了一个简单的存储库模式,为我创建的所有模型类提供基本的CRUD操作。我选择遵循docs中提供的所有建议。DI就是其中之一。在~~.NET5~~(6年后更新:.net5是.netcore1.0的alpha名称)依赖注入(inject)对于我们不直接使用的任何类都非常有效实例化(例如:Controller、数据存储库……)。我们只需通过构造函数注入(inject)它们,并在应用程序的Startup类中注册映射://SomerepositoryclasspublicclassMyRep

c# - T4 模板错误 : loading the include file ef. utility.cs.ttinclude 返回了 null 或空字符串

我已经覆盖了Controller生成T4模板(ControllerWithContext.tt),如here所述.我想利用在POCO模型生成器T4模板中使用的EF.utility.CS.ttinclude中的代码帮助实用程序。因此,我将以下行从我的Model.tt复制到我的ControllerWithContext.tt。但是,当我尝试添加Controller时,我收到了错误消息Loadingtheincludefile'EF.utility.CS.ttinclude'returnedanulloremptystring根据MSDNdocumentation,这个错误是因为包含的文件是

c# - 控制模板 : how to create bindings

因此,我有一个数据网格,它具有不同颜色的单元格,具体取决于单元格的值。我还有一个显示更多信息的工具提示。这一切都很好。但是,我想更改工具提示以显示更多信息并与单元格颜色相同。因此,我认为为我的工具提示创建自定义样式是明智的。所以,我有以下代码。我有一个绑定(bind)到我的数据网格的对象,如下所示。我想将这三个属性绑定(bind)到工具提示中的三个文本框。classMyTask{publicstringName;publicintCode;publicstringDescription;}在我的DataGrid中,我执行以下操作将我的数据绑定(bind)到我的数据网格ItemsSour

c# - WPF 中的 Ninject 构造函数注入(inject)

是否可以使用ninject进行依赖项注入(inject),使结果类似于我可以在MVC中获得的注入(inject)。详细来说,如果我使用MVCninject适配器,我可以将我的WebController声明为具有构造函数参数,然后由ninject自动注入(inject)。但是,我还没有找到这样一个WPF的ninject扩展,它可以让我有一个这样的窗口:publicpartialclassMainWindow:Window{privatereadonlyIServiceinjectedService;publicMainWindow(IServiceinjectedService){thi

c# - 带有 VSIX 安装程序和 Nuget 包的 Visual Studio 2012 的多项目/解决方案模板

我想要一个将创建子项目的多项目模板,并将安装nuget依赖项以及一个将安装此模板的vsix安装程序。已经尝试过的方法有问题没有VSIX、没有nuget的多项目模板我能够创建一个多项目模板,并且工作正常,除了在包含nuget引用时,它没有工作。没有不涉及VSIX的对nuget的简单/优雅支持。带有VSIX的多项目模板,没有根模板所以我尝试使用VSIX,它看起来非常简单。添加一个模板项目作为zip或从解决方案,构建vsix安装程序。但是当我添加第二个项目模板,创建一个多项目模板,构建它,安装模板并尝试创建一个项目时,我意识到它不支持主子项目设置,其中主项目创建子项目。这是一个大问题,因为开

c# - 当基类中只需要依赖时,在基类中使用属​​性注入(inject)是否合适?

例子:publicabstractclassBaseControler:Controller{publicIUnitOfWorkUnitOfWork{get;set;}}publicclassHomeController:BaseControler{readonlyIUserRepository_userRepository;//:-)publicHomeController(IUserRepositoryuserRepository){_userRepository=userRepository;}}我们都知道,当需要依赖时,我们必须使用构造函数注入(inject)。如果它是一个可选

c# - 如何为给定服务注入(inject)所有实现?

如何为给定服务接口(interface)注入(inject)所有已注册实现的列表?publicclassThing{publicThing(IListservices){}}publicclassServiceA:IService{}publicclassServiceB:IService{}publicclassServiceB:IService{}给定这样的注册:publicclassStartup{publicvoidConfigureServices(IServiceCollectionservices){services.AddTransient().AddTransient

c# - 如何在 ASP.NET CORE 中使用具有依赖注入(inject)的 Action 过滤器?

我在我的ASP.NETCORE应用程序中到处使用基于构造函数的依赖注入(inject),我还需要在我的操作过滤器中解析依赖关系:publicclassMyAttribute:ActionFilterAttribute{publicintLimit{get;set;}//somecustomparameterspassedfromActionprivateICustomServiceCustomService{get;}//thismustberesolvedpublicMyAttribute(){}publicoverrideasyncTaskOnActionExecutionAsyn

c# - T4 模板不会随着构建而转换

我在Windows7上使用VisualStudioUltimate2012(更新1)。我可以通过以下方式让我的T4模板生成文件:右键单击[tt文件]|运行自定义工具。效果很好!(对我来说是的)。如果我运行菜单命令,它也可以工作:Build|转换所有T4模板。但我想要自动化!当我尝试让生成的代码文件在每次构建时生成时遇到问题——这是我的目标。我看着这个:T4transformationandbuildorderinVisualStudio这不是我想要的。它讨论了使用预构建构建事件。我希望它成为构建的一部分。还有这个:IsthereawaytogetVisualStudiotorun“Tr