У меня есть COMVisible COM класс, написанный на C#. Я хочу вызвать его из другого кода C# кода, используя COM, и передать значение по умолчанию для параметра. Я могу вызвать множество других методов без аргументов по умолчанию.Передача параметра по умолчанию метода COM
Это лучшее, что я могу придумать. Первые две строки работают для всех моих других методов.
Type mytype = Type.GetTypeFromProgID("MyType");
dynamic myinstance = Activator.CreateInstance(mytype);
object missingValue = System.Reflection.Missing.Value;
myinstance.generatecsvdocument("mystring", ref missingValue);
Мой метод выглядит следующим образом:
public void generatecsvdocument(string mystring, string rowseperator = "\n")
Когда я запускаю его я получаю сообщение об ошибке:
The best overloaded method match for 'generatecsvdocument(string, string)' has some invalid arguments
Is '(string, string)' overload _really_ существует? Сообщение об ошибке вполне понятно. –
Ну да, он существует, но я передаю System.Reflection.Missing.Value как второй аргумент, который не является строкой. –
Я не думаю, что COM имеет методы по умолчанию. C#, но не все функции C# отображаются в COM. – MSalters