问题标签 [extension-methods]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - Passing interface as a parameter to an extension method
I have used extension methods to extend html helpers to make an RSS repeater:
So I make one of my business objects implement IRSSable, and try to pass this to the HTML helper. But I just cannot seem to make it work, I have tried:
Compiles fine, but null is passed
Intellisense moans about not being able to pass IEnumerable issue to IEnumberable IRSSable
- So how do you do it? That method I am calling definitly returns
IEnumberable<Issue>
and Issue definitly implements IRSSAble
c# - 如何获取泛型方法的 MethodInfo?
我正在尝试获取MethodInfo
该方法的对象:
我遇到的问题是如何为Func<TSource, Boolean>
位指定类型参数...
帮助表示赞赏。
c# - 方法和匿名类型
我知道您不能从方法返回匿名类型,但我想知道 Select 扩展方法如何返回匿名类型。它只是一个编译器技巧吗?
编辑
假设 L 是一个列表。这是如何运作的?
返回类型是 IEnumerable<'a> 其中 'a = new {String Name}
.net - VB.NET 扩展方法
当我在我的方法上方应用标签时,我得到了错误
类型 System.Runtime.CompilerServices.Extension 未定义。
这是我的样本
我哪里错了?
编辑~直接从这里的 MSDN 文章,同样的错误
我在我的项目中使用 Visual Studio 2008 和 3.5 框架。
解决方案〜该项目在2.0框架上。更改为 3.5 并且可以正常工作。
javascript - 有谁知道创建基于 MVC 的组件/扩展方法的好文章?
我已经为几个项目开发了几种扩展方法,它们目前严重依赖一些 AJAX 来使零碎工作。问题是他们需要将 JavaScript 文件复制并粘贴到您想要使用它的项目中。
由于这个 JavaScript 文件只需要使用一次(渲染控件的所有实例都使用同一个文件),我想做一些事情,比如将 script 元素添加到通过 web 资源使用的页面的 headers 集合中(将文件作为资源嵌入程序集中)。在 Web 表单中这不是问题 - 您可以将脚本块添加到具有特定 ID 的标题中,并在页面加载时简单地检查它。
什么是 MVC 等价物 - 有没有等价物?
我想要一个不需要消费者复制和粘贴/添加行到页面或配置的解决方案......有什么想法吗?
.net - Silverlight 中的 .Net 框架版本:无列表.寻找方法?
今天我发现了一件让我伤心的事情:System.Generic.Collections.List 类型的对象没有很多我喜欢的有用的扩展方法,例如 Find、FindAll、FindIndex、Exists、RemoveAll 等.
VS2008 中的对象浏览器显示这些方法存在于我正在使用的 mscorlib 版本中,但如果我查看 ildasm 中的程序集,它们不存在。
我是否在这里遗漏了一些明显的东西,或者有什么方法可以让我的 Silverlight 应用程序使用它们?
另外,我想知道 Silverlight 的运行时与“真实”运行时之间是否有很好的参考。
谢谢!
c# - 为什么 VS 2008 在 Intellisense 中不显示 String 类的扩展方法
由于 String implements IEnumerable<char>
,我期待在 Intellisense 中看到 Enumerable 扩展方法,例如,在输入句点时
我期待看到.Select<char>(...)
,.ToList<char>()
等。然后我惊讶地发现扩展方法实际上确实适用于字符串类,它们只是没有出现在 Intellisense 中。有人知道为什么是这样吗?这可能与这个问题有关。
c# - 单元测试期间的 C# 扩展方法异常
使用 Visual Studio 2008 / C# / VS 单元测试。
我有一个非常简单的扩展方法,它会告诉我对象是否属于特定类型:
它会被称为:
当我在调试模式下运行代码或调试单元测试时,该方法工作得很好。然而,在我刚刚在上下文中运行所有单元测试的那一刻,我神秘地得到了这个方法的 MissingMethodException。奇怪的是,同一个类中的另一个扩展方法没有问题。
我倾向于问题不是扩展方法本身。我试过删除临时文件,关闭/重新打开/清理/重建解决方案等。到目前为止,没有任何效果。
有没有人在任何地方遇到过这种情况?
编辑:这是代码的简化示例。基本上,这是我能够在没有周围代码包袱的情况下创建的最小的可重现示例。当放入单元测试时,这个单独的方法也会单独抛出 MissingMethodException,就像上面一样。有问题的代码并没有完成手头的任务,就像乔恩提到的那样,它更多的是我目前关注的异常的来源。
解决方案:我尝试了许多不同的方法,同意 Marc 将其视为参考问题的思路。删除引用、清理/重建、重新启动 Visual Studio 不起作用。最终,我最终在我的硬盘驱动器中搜索已编译的 DLL,并将其从任何没有意义的地方删除。删除除 TestResults 文件夹中的所有实例后,我就能够成功地重建并重新运行单元测试。
至于方法的内容,我是在单元测试中发现问题的,但始终无法让这个概念发挥作用。由于 O 是一个 RunTimeType,我似乎没有太多访问它的权限,并尝试使用 IsAssignableFrom() 来让函数正确返回。目前,此功能已从我的验证方法中删除,以便下次重新访问。但是,在删除它之前,我仍然遇到了用许多其他方法开始这篇文章的原始问题。
后解决方案:实际的方法并不像我想象的那么复杂。这是实际的工作方法:
和单元测试来验证它:
c# - 自定义 Linq 扩展语法
我编写了一个从列表中获取给定数量的随机记录的函数。目前我可以做类似的事情:
(其中 db 是我的 DataContext 连接到 SQL Server DB)
目前,我在每个需要随机记录的实体中都有这样的功能:
它工作得很好,但我希望它是通用的,所以它可以适用于任何表格,甚至任何项目列表。我尝试了一种扩展方法,例如:
但我得到:
其中突出显示GetRandom<T>
。
我不明白这里有什么问题。有人可以清除正确的语法吗?
linq-to-sql - LINQ to SQL 自动生成的可扩展性方法
当我使用 LINQ to SQL 生成实体类时,我得到了我想要的,但我也得到了一堆其他的可扩展性方法定义。
例如 myField (TEXT) 我得到:
上述可扩展性方法的常见用途是什么?