草庐IT

模板注入

全部标签

c# - 代码生成器或 T4 模板,它们真的是邪恶的吗?

我听说有人说不应该使用代码生成器和T4模板。这背后的逻辑是,如果您使用生成器生成代码,那么有一种更好、更有效的方法可以通过泛型和模板构建代码。虽然我有点同意上面的说法,但我还没有真正找到有效的方法来构建可以实例化自己的模板。换句话说,我永远做不到:returnnewT();此外,如果我想根据数据库值生成代码,我发现将Microsoft.SqlServer.Management.SMO与T4模板结合使用可以很好地生成大量代码,而无需复制/粘贴或使用resharper。我发现泛型的许多问题也是令我震惊的是有很多开发人员不理解它们。当我确实检查泛型的解决方案时,有时它会变得复杂,因为C#声明

c# - 使用 TypeConverter 进行依赖注入(inject)

我有一个正在设计的应用程序,它引用了一个我也在设计的库。具体来说,应用程序需要创建我的下层库中定义的Sheathing类的实例。[TypeConverter(typeof(SheathingOptionsConverter))]publicclassSheathing:Lumber{publicstringDescription{get;set;}publicSheathing(stringpassedDescription){Description=passedDescription;}}我的应用程序在属性网格中列出了不同的护套选项。因为它在下拉菜单中列出了它们,所以我不得不扩展Ex

c# - 注入(inject)应用程序配置的最佳方式

好吧,我正带着一个关于将配置设置注入(inject)应用程序组件的正确方法的问题进入这个奇妙的网站。因此,概述是:我有一个用C#.Net3.5编写的应用程序。它由3个组件组成-一个核心、一个数据和一个服务。数据和服务程序集需要从app.config检索设置,这是通过设置文件完成的,例如。代码:publicstaticStringRequestQueueConnectionString{get{returnConnectionSettings.Default.RequestQueueConnectionString;}}配置:...现在,程序集都是使用IoC的StructureMap设置

c# - 具有非依赖参数的构造函数注入(inject)

我有一个像这样的接口(interface)ITradingApi:publicinterfaceITradingApi{IOrderCreateOrder(...);IEnumerableGetAllSymbols();//...}这意味着成为交易软件供应商的不同API的外观。我的View模型在其构造函数中依赖于此交易API:publicclassMainViewModel{publicMainViewModel(ITradingApitradingApi){/*...*/}//...}我使用Ninject作为IoC容器,所以我将像这样创建我的View模型的实例:varvm=kerne

c# - (自动)依赖注入(inject)绑定(bind)机制

创建依赖项注入(inject)绑定(bind)的两种常见机制(例如通过IOC容器)来自XML配置或命令式代码块。在这些情况下,键值对是显式的(即键=请求的类型,值=返回的类型)。仍然存在第三种“启发式”方法,其中仅向应用程序/IOC容器提供[IMyClass]键,然后容器反射(reflect)一组应用程序程序集依赖项以找到所有名称匹配的具体类[MyClass]。换句话说,“返回类型”值是发现的而不是声明的。我想知道的有两个方面:哪些IOC容器(或其他后期绑定(bind)工具)允许启发式方法?这种方法有更通用的名称吗?除了我列出的三种绑定(bind)技术外,还有其他用于实践的绑定(bin

c# - Silverlight:TextBlock 没有模板属性?

我想自定义TextBlock的外观。(我想要一个圆角矩形边框。)但我希望能够通过文件app.xaml设置它的模板。但我看到TextBlock没有Template属性。我会使用Label(它确实具有Template属性),但我猜Silverlight不支持Label控件。那么我可以用什么来做到这一点? 最佳答案 我在ScottGuthrie's中找到了针对此文本框圆角边框的解决方案之一。文章:http://weblogs.asp.net/scottgu/pages/silverlight-tutorial-part-4-using-s

c# - Silverlight 构造函数注入(inject) View 模型+设计模式

我正在努力掌握在Silverlight4中编写可测试的ViewModel。我目前正在使用MVVMlight。我使用的是AutoFac,而IoCContainer工作正常。然而,为了注入(inject)绑定(bind)到View的ViewModels的构造函数,我有这个构造函数链接:publicUserViewModel():this(IoCContainer.Resolve()){}publicUserViewModel(IUserServiceAsyncuserService){if(this.IsInDesignMode)return;_userService=userServic

c# - 如何将管道代码注入(inject)/生成用属性装饰的方法?

我正在阅读一些关于缓存和记忆化以及如何使用委托(delegate)和泛型轻松实现它的文章。语法非常简单,而且实现起来非常容易,但我只是觉得由于重复性,应该可以根据属性生成代码,而不必一遍又一遍地编写相同的管道代码。假设我们从默认示例开始:classFoo{publicintFibonacci(intn){returnn>1?Fibonacci(n-1)+Fibonacci(n-2):n;}}然后记住这个://Let'ssaywehaveautilityclasssomewherewiththefollowingextensionmethod://publicstaticFuncMemo

c# - 如何在 C# 中编写一个很好的奇特的重复模板模式 (CRTP)

前阵子我想创建我自己的数据映射器,它比普通的ORM简单得多。在这样做的过程中,我发现需要访问我的基类中继承类的类型信息。我的第一个想法是反射,但它太慢了(如果你使用反射,请查看Fasterflect因为它“几乎”消除了反射的性能问题)。所以我求助于一个解决方案,后来我发现它有自己的名字:TheCuriouslyRecurringTemplatePattern。这主要解决了我的问题,但学习如何正确实现此模式有点挑战。我必须解决的两个主要问题是:1)如何让我的消费代码与我的通用对象一起工作,而不需要知道创建对象时使用的通用参数?2)如何在C#中继承静态字段?具有挑战性的部分实际上是解决问题

c# - 如何在 Visual Studio 2015 上的 ASP.NET Core 中创建 T4 文本模板 (.tt)

我想创建T4文本模板来实现代码生成。我在msdn上找到的所有教程都建议按照以下步骤添加新的文本模板:Add>NewItem>TextTemplate,(例如https://msdn.microsoft.com/en-us/library/dd820620.aspx)但我没有看到该选项(Text模板)在那里。我正在使用ASP.NET核心1.0。此问题与VS2015或ASP.NETCore相关吗?如果其中任何一个都不支持T4模板,那么实现此目标的最佳解决方案/替代方案是什么?(我想从C#代码生成typescript代码),类似于本教程http://dotnetspeak.com/2015/