- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在使用 stackoverflow 和谷歌搜索一段时间,试图找到有关如何在 T4 文件中使用 Linq 扩展方法的答案。我正在使用 VS 2012、.NET 4.5。
例如:
Dictionary<string, string> myDict = new Dictionary<string, string>();
myDict = GetSomeData();
假设我想获取字典中的最后一项:
<#string last = colNames.Keys.Last();#>
它不介意我使用集合,但它不喜欢“.Last()”。
Compiling transformation: 'System.Collections.Generic.Dictionary.KeyCollection' does not contain a definition for 'Last' and no extension method 'Last' accepting a first argument of type 'System.Collections.Generic.Dictionary.KeyCollection' could be found (are you missing a using directive or an assembly reference?)
我已经导入了必要的命名空间...
编辑 -> 为清楚起见...我在 T4 模板的顶部有以下内容:
<#@ assembly name="$(SolutionDir)\SomeProject\bin\Debug\System.Data.Linq.Dll" #>
<#@ import namespace="System.Data.Linq" #>
有什么想法吗?提前致谢。
最佳答案
确保您的 T4 模板包含正确的 Assembly Directive引用 System.Core.dll
,这是定义 LINQ 的地方:
<#@ assembly name="System.Core"#>
这等同于常规 C# 项目中的“添加引用...”。
然后确保你有一个正确的 Import Directive对于 System.Linq
命名空间:
<#@ import namespace="System.Linq"#>
这等同于常规 C# 代码中的 using
指令。
将这些添加到您的 .tt
文件的顶部。
关于c#-4.0 - 如何在 T4 中使用 linq 扩展方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22205235/
我是一名优秀的程序员,十分优秀!