У меня есть функция, которая берет текстовый документ и сохраняет его в формате HTML.Я хотел бы использовать ту же функцию для работы с любым типом документа.Я попытался использовать дженерики (я предполагаю, что разные doc API одинаковы), но это не помогло по причине, указанной Джоном СкитомЕсть ли другой способ?
using Word = Microsoft.Office.Interop.Word;
using Excel = Microsoft.Office.Interop.Excel;
//Works ok
private void convertDocToHtm( string filename )
{
... snip
var app = new Word.Application();
var doc = new Word.Document();
doc = app.Documents.Open(ref fileName, ref missing, ref trueValue, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing);
... snip
}
//fails dismally (to compile) because 'T' is a 'type parameter', which is not valid in the given context - i.e Word is a namespace not a class
private void convertDocToHtm2<T>( string filename )
{
... snip
var app = new T.Application();
var doc = new T.Document();
doc = app.Documents.Open(ref fileName, ref missing, ref trueValue, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing);
... snip
}
//calling examples
convertDocToHtm( filename );
convertDocToHtm2<Word>( filename );
convertDocToHtm2<Excel>( filename );