CodeDomProviderに問題があります。コードVBをコンパイルすると、エラーはありません。このコードは、拡張子(例:string().contains()
、char().count
、char().AsEnumerable
、など)を持っている場合しかし、私はこれらの関数を呼び出した瞬間に、それはすべてのこれらの拡張のための同等の例外を返します:拡張機能とCodeDomProvider
タイプで「公開メンバー 『カウント』 「シャア()」」
『になっていません公開メンバーは、タイプに『が含ま』『文字列()』が見つかりません』
Dim refs() As String = {"mscorlib.dll", "System.dll", "Microsoft.VisualBasic.dll","system.xml.dll", "system.core.dll", "system.data.dll"}
oCParams.ReferencedAssemblies.AddRange(refs)
これらは、コンパイルに参照されるアセンブリであり、これもありますFramework 4.0で実行するように構成されています。
Dim Param As New Dictionary(Of String, String)
Param.Add("CompilerVersion", "v4.0")
Dim oCodeProvider = CodeDomProvider.CreateProvider("VisualBasic", Param)
このコードは、文字列内にある:
Imports System
Imports System.Xml
Imports System.Data
Imports System.Collections
Imports System.Linq.Expressions
Imports System.Linq
Imports System.String
Imports System.Linq.Enumerable
Imports System.Collections.Generic
Imports System.Runtime.CompilerServices
Imports System.Runtime.CompilerServices.ExtensionAttribute
Namespace Teste
Class Classe
Public Shared Function ProcessarLink(ByVal URL As System.Uri) As Boolean
Dim QueryString = URL.Query.Remove(0, 1).Split("&"c).tolist
If QueryString.Contains("xxx") Then
...
End If
End Function
Public Shared Function Personalizar(ByRef Vetor() As Char) As System.Collections.Generic.Dictionary(Of String,Object)
...
Dim Total As Integer = Vetor.Count
...
End Function
End Class
End Namespace
私は私のアセンブリをコンパイルするためにそれを使用した後。
コードはエラーなしでコンパイルされますが、関数 'ProcessarLink'を呼び出すと 'Contains'の例外が返されます。または、 'Personalizar'関数を呼び出すとエラーが 'Count'に表示されます。これはAsEnumerableなどの他の拡張も同様です。
問題は何ですか?
どのようにコードを作成しますか?文字列にコンパイルした場合のコードはどのように見えますか? – svick