Какая-либо свободная альтернатива Robohelp? [закрытый]

Это мои 2 цента на основе ответа Grax , но с двумя параметрами, необходимыми для общего метода.

Предположим, что ваш метод определяется следующим образом в классе Helpers:

public class Helpers
{
    public static U ConvertCsvDataToCollection(string csvData)
    where U : ObservableCollection
    {
      //transform code here
    }
}

В моем случае тип U всегда является наблюдаемым объектом хранения коллекции типа T.

Поскольку у меня есть предопределенные типы, я сначала создаю «фиктивные» объекты, которые представляют наблюдаемый набор (U) и объект, хранящийся в нем (T), и который будет использоваться ниже, чтобы получить их тип при вызове Make

object myCollection = Activator.CreateInstance(collectionType);
object myoObject = Activator.CreateInstance(objectType);

Затем вызовите GetMethod, чтобы найти вашу общую функцию:

MethodInfo method = typeof(Helpers).
GetMethod("ConvertCsvDataToCollection");

До сих пор вышеупомянутый вызов в значительной степени идентичен тому, что было объяснено выше, но с небольшой разницей, когда вам нужно передать ему несколько параметров.

Вам нужно передать массив Type [] в функцию MakeGenericMethod, которая содержит типы «фиктивных» объектов, которые были созданы выше:

MethodInfo generic = method.MakeGenericMethod(
new Type[] {
   myCollection.GetType(),
   myObject.GetType()
});

Как только это будет сделано, вам нужно вызвать метод Invoke, как указано выше.

generic.Invoke(null, new object[] { csvData });

И все готово.

UPDATE:

Поскольку @Bevan выделен, мне не нужно создавать массив при вызове функции MakeGenericMethod, поскольку он принимает параметры, и мне не нужно создавать объект, чтобы получить типы, поскольку я могу просто передать типы непосредственно этой функции. В моем случае, поскольку у меня есть типы, предопределенные в другом классе, я просто изменил свой код на:

object myCollection = null;

MethodInfo method = typeof(Helpers).
GetMethod("ConvertCsvDataToCollection");

MethodInfo generic = method.MakeGenericMethod(
   myClassInfo.CollectionType,
   myClassInfo.ObjectType
);

myCollection = generic.Invoke(null, new object[] { csvData });

myClassInfo содержит 2 свойства типа Type, которые я установил во время выполнения на основе перечисления значение передается конструктору и предоставит мне соответствующие типы, которые затем я использую в MakeGenericMethod.

Еще раз спасибо за выделение этого @Bevan.

18
задан Constantin 19 October 2008 в 19:23
поделиться

5 ответов

Проверьте этот список бесплатных программ для создания файлов справки , обязанный быть чем-то полезным там.

3
ответ дан 30 November 2019 в 09:28
поделиться

Просто помнивший: в зависимости от того, что Вы хотите сделать, можно использовать doxygen (www.doxygen.org) или свободный инструмент справки от http://www.vizacc.com/ .

5
ответ дан 30 November 2019 в 09:28
поделиться

Вы пытаетесь сделать просто CHM или другие выходные форматы также?

Смотрят на DocBook. Можно сделать (из одного исходного файла) PDF, HTML и председателя - и некоторые другие, также. Я использовал его в прошлом, но это не очень легко или удобно использовать. Если Вы только хотите произвести председателя (и должен использовать бесплатное решение), посмотрите, можно ли сойти с рук использование htmlhelp семинара ( http://www.microsoft.com/downloads/details.aspx?familyid=00535334-c8a6-452f-9aa0-d597d16580cc&displaylang=en ).

1
ответ дан 30 November 2019 в 09:28
поделиться

При попытке создать .chm базирующаяся справка, попробуйте сборка председателя

0
ответ дан 30 November 2019 в 09:28
поделиться

Мне нравится Сфинкс .

Вы пишете документацию, используя формат простой текстовой разметки, reStructuredText.

Sphinx может создавать HTML, Windows HTML help и PDF (с помощью Latex).

Я создал документацию для конечных пользователей для двух проектов, использующих Sphinx, а также использовал ее для документирования пары пакетов Python (Sphinx имеет много возможностей по извлечению документации из модулей Python, он был изначально создан для написания документации на Python).

Начало работы очень простое, и вы получаете документацию профессионального вида с минимальными усилиями.

Если вы привыкли к WYSIWYG редактированию текста, то использование простого текстового формата разметки может потребовать некоторого привыкания. Но я думаю, что это того стоит.

У меня также есть некоторый опыт работы с DocBook (одним из упомянутых проектов документации для конечных пользователей была миграция с DocBook на Sphinx). Я предпочитаю Sphinx, а не Docbook: С обычным текстом работать приятнее, чем с XML, у Sphinx более простая инструментальная цепочка.

Смотрите также:

3
ответ дан 30 November 2019 в 09:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: