gpt4 book ai didi

vb.net - 扩展方法未被识别

转载 作者:行者123 更新时间:2023-12-01 14:37:51 25 4
gpt4 key购买 nike

我在 VB.NET 中有一个 Web 应用程序项目,我正在尝试添加一个扩展方法以在 View 中使用。

Extensions.vb

Imports System.Runtime.CompilerServices    
Namespace MyApp
Public Module Extensions
<Extension()> _
Public Function GetValOrDefault(ByVal dict As Dictionary(Of String, String), ByVal key As String, ByVal defaultVal As String) As String
Dim val As String
If (dict.TryGetValue(key, val)) Then
Return val
End If
Return defaultVal
End Function
End Module
End Namespace

View.cshtml

@Code
Dim msgs As Dictionary(Of String, String) = New Dictionary(Of String, String)
msgs("Foo") = "Bar"
Dim val As String = msgs.GetValOrDefault("Foo", "Bar")
End Code

但是,这不起作用,显示以下错误:

'GetValOrDefault' is not a member of 'System.Collections.Generic.Dictionary(Of String, String)'.

这是一个相当简单的扩展方法,我不确定为什么它没有被采用。还尝试添加一个更简单的扩展,只接受一个字符串并返回一个字符串,但存在同样的问题,因此似乎没有采用扩展方法。

尝试编译,也没有运气。请注意,该模块与 View 位于同一项目中,但我认为这不会有任何区别(我在 C# 项目中完成此操作没有任何问题)。

是否有任何我遗漏的步骤或其他事情需要完成才能让它发挥作用?

最佳答案

这是一个老问题,但是,如果其他人也在摸不着头脑,请确保检查包含扩展名的文件的构建操作是否设置为编译。在静静地发疯了两个小时并想知道为什么扩展只在某些地方有效之后,我意识到它被设置为内容。快速更改为 Compile,它成功了。 :)

关于vb.net - 扩展方法未被识别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18409675/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com