Как позволить CompileAssemblyFromSource() обращаться к пользовательским типам в вызывающей программе
Я успешно использую динамически скомпилированные сборки для оценки определяемых пользователем выражений во время выполнения. Мой вопрос о том, как передать ссылки на типы, определенные в моей собственной программе, в функцию CompileAssemblyFromSource(). В настоящее время я вынужден использовать "объект" в моих пользовательских выражениях, что вызывает позднюю привязку. Как только я пытаюсь использовать свои собственные типы в коде сборки, я получаю сообщение "Ошибка BC30002 - тип" cMyClass "не определен"
Я нашел следующее, чтобы добавить к параметрам, который звучит совершенно правильно:
Dim executingAssembly As Assembly
Dim executingAssemblyName As String
executingAssembly = Assembly.GetExecutingAssembly()
executingAssemblyName = executingAssembly.Location
params.ReferencedAssemblies.Add(executingAssemblyName)
Но, похоже, это совсем не помогает...
Вот пример функции, которую я пытаюсь скомпилировать безуспешно:
Public Class Sample
Public Shared Function StaticFunction(ByVal myObject As cMyClass) As String
Return myObject.DoSomething
End Function
End Class
Если я заменю 'cMyClass' на 'object', все будет хорошо.