У меня проблемы с CodeDomProvider. Когда я компилирую код VB, ошибки нет. Но если этот код имеет расширения (например: string().contains()
, char().count
, char().AsEnumerable
и т. Д.) В момент, когда я вызываю эти функции, он возвращает исключение, равное для всех этих расширений:
'Public Member' Count 'в типе' Char () 'not found'
'Public Member' Contains 'типа' String () 'not found'
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 и т. Д.
В чем проблема?