Я работаю над программой, динамически (во время выполнения которой) загружает DLL.
Пример: Microsoft.AnalysisServices.dll
.Передать значение перечисления методу, вызываемому динамическим объектом
В этой библиотеке DLL есть это перечисление:
namespace Microsoft.AnalysisServices
{
[Flags]
public enum UpdateOptions
{
Default = 0,
ExpandFull = 1,
AlterDependents = 2,
}
}
и мы также имеем этот class Cube
:
namespace Microsoft.AnalysisServices
{
public sealed class Cube : ...
{
public Cube(string name);
public Cube(string name, string id);
..
..
..
}
}
Я динамически загружать этот DLL и создать объект Cube
. Чем я называю метод Cube.Update()
. Этот метод развертывает сервер Cube to SQL Analysis. Но если я хочу вызвать этот метод с параметрами Cube.Update(UpdateOptions.ExpandFull)
, я получаю ошибку, потому что метод не получает соответствующий параметр.
Я уже пробовал это, но не работает:
dynamic updateOptions = AssemblyLoader.LoadStaticAssembly("Microsoft.AnalysisServices", "Microsoft.AnalysisServices.UpdateOptions");//my class for loading assembly
Array s = Enum.GetNames(updateOptions);
dynamic myEnumValue = s.GetValue(1);//1 = ExpandFull
dynamicCube.Update(myEnumValue);// == Cube.Update(UpdateOptions.ExpandFull)
Я знаю, что ошибка в параметре myEnumValue
, но я не знаю, как получить динамически перечислимую тип из сборки и передать его на метод. Кто-нибудь знает решение?
Большое спасибо за ответы и помощь!
Я пробовал это, но не работает. Даже если я добавлю ссылку на сборку и попробую это получить ошибку: 'метод имеет некоторые недопустимые аргументы' –