如果我将文本存储在 db、文件、资源中,则无关紧要:
<code><%= Integer.MaxValue %></code>
有没有办法做到这一点:
Dim el As XElement = XElement.Parse({variable containing text above})
并让它评估表达式 Integer.MaxValue?
如果我将文本存储在 db、文件、资源中,则无关紧要:
<code><%= Integer.MaxValue %></code>
有没有办法做到这一点:
Dim el As XElement = XElement.Parse({variable containing text above})
并让它评估表达式 Integer.MaxValue?
简短的回答是否定的。编译器知道如何解析它,并用看起来像在 C# 代码中所做的事情来替换你的源代码。
测试代码:
Dim source As String = "a,s,d,f"
Dim ar As String() = source.Split(","c)
Dim el As XElement = <code>
<%= From s In ar Select s + "22" %>
</code>
反映代码:
Dim VB$CG$t_i4$S0 As Integer
Dim ar As String() = "a,s,d,f".Split(New Char() { ","c })
Dim VB$t_ref$S0 As New XElement(XName.Get("code", ""))
VB$t_ref$S0.Add(ar.Select(Of String, String)(New Func(Of String, String)(AddressOf Test._Lambda$__1)))
Dim el As XElement = VB$t_ref$S0
不容易。最接近您可以使用 CodeDOM 生成一些代码的方法 - 您需要生成一个包装器模块和一个Function
with Return
,然后将数据库中的表达式放入其中Return
- 编译它(并检查编译错误),运行它,看看结果。总而言之,这将非常缓慢。
我认为他们的关键是理解嵌入式表达式是如何工作的。我已将此作为一个单独的问题提出。