2016-06-03 8 views
0

Я пытаюсь вставить текст в текстовом файле в C# и я попробовал этот код из StackOverflow поста:Невозможно неявно преобразовать «string» в «object» error?

Microsoft.Office.Interop.Word.Application wordApp = null; 
wordApp = new Microsoft.Office.Interop.Word.Application(); 
wordApp.Visible = true; 
var filePath = @"H:\5555\Documents\Doc1.doc"; 
Document wordDoc = wordApp.Documents.Open(filePath); 
Bookmark bkm = wordDoc.Bookmarks["name_field"]; 
Microsoft.Office.Interop.Word.Range rng = bkm.Range; 
rng.Text = "Adams Laura"; //Get value from any where 

Так я получаю эту ошибку: Не удается неявно преобразовать «строку» в «объект», когда я запустите эту строку.

"Document wordDoc = wordApp.Documents.Open(filePath);"

Но я не знаю, какой предмет я должен использовать.

+1

Попробуйте преобразовать его явно, например. (object) filePath – Alex

+0

Вот что вы должны найти полезным. Я думаю, @Alex уже ответил на ваш вопрос, но это также может быть полезно: http://stackoverflow.com/questions/2690623/what-is-the-dynamic-type-in-c-sharp-4-0-used- для/2690837 # 2690837 - посмотрите на ответ от Lasse V. Karlsen. – sr28

+0

Строка - это объект, поэтому я не понимаю, что ошибка –

ответ

1

Мир Word's COM может делать вещи «чистые» C# не «нравится»/понимать. Одна из таких вещей - необязательные параметры. C# использует понятие «перегрузка», когда метод может принимать другое число и/или комбинацию параметров; классический мир VB/COM имеет единый метод с дополнительными параметрами. Таким образом, PIA представляют их на C# как тип данных object, которые необходимо передать «по ссылке». Если параметр не используется, то передается ref Type.Missing.

Новые версии C# можно разместить классический VB/COM идеосинкразий немного лучше, но когда вы столкнетесь с чем-то вы охарактеризовали попытку:

object oFilePath = filePath; 
Document wordDoc = wordApp.Documents.Open(ref oFilePath); 

Если вы получите другую ошибку, смотрите на Intellisense для метода Open для версии Word, которую вы программируете, и добавьте ref Type.Missing для остальных параметров, перечисленных в подсказке Intellisense.

 Смежные вопросы

  • Нет связанных вопросов^_^