Как читать тип варианта в Visual С# 2010 из объекта COM (VB)
Я работаю с примером FAXCOMEXLib, который microsoft опубликовал некоторое время назад и пытаюсь перенести его на С#. У меня возникают проблемы с вызовом, который возвращает тип Variant, который содержит строковый массив. "jobID = objFaxDocument.ConnectedSubmit(objFaxServer);"
Процедура возвращает окно сообщения, которое показывает "System.String []". Я, кажется, вспоминаю, что работаю с Delphi, которая также использует варианты, что одно свойство варианта - это просто строка, которая показывает, что она хранит. Возможно, это то, что происходит здесь. Но так или иначе, как я могу получить этот массив строк и преобразовать его во что-то, что С# понял бы?
благодаря
Рекомендации:
http://support.microsoft.com/kb/317030 (показывает, как вернуть вариант из VB6) http://msdn.microsoft.com/en-us/library/ms692936(v=VS.85).aspx ( пример для FAXCOMEXLib)
FAXCOMEXLib.FaxDocument objFaxDocument = new FAXCOMEXLib.FaxDocument();
FAXCOMEXLib.FaxServer objFaxServer = new FAXCOMEXLib.FaxServer();
object jobID;
try {
//Connect to the fax server
objFaxServer.Connect("");
// skipping some code, see MS example in URL above
jobID = objFaxDocument.ConnectedSubmit(objFaxServer);
MessageBox.Show("The Job ID is :" + jobID);
Простой бросок сделает трюк:
object objIDs = objFaxDocument.ConnectedSubmit(objFaxServer);
string[] IDs = (string[])objID;
Если вы знаете это строковый массив, просто введите результат в строку []:
string[] jobID = (string[]) objFaxDocument.ConnectedSubmit(objFaxServer);
MessageBox.Show("The Job ID is: " + jobID[0]);
Возможно, что входящие данные действительно представляют собой массив различных типов объектов (т.е. Гетерогенных массивов). В этом случае это будет работать (если первый элемент действительно является строкой):
object[] jobID = (object[]) objFaxDocument.ConnectedSubmit(objFaxServer);
MessageBox.Show("The Job ID is: " + (string)jobID[0]);
Похожие вопросы
Если вы работаете с С# 4.0, вам следует исследовать с помощью динамического типа,
Посмотрите другие вопросы по меткам c# com или Задайте вопрос