Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 10.07.2015
Сообщений: 2
1

Стратегия написания кода "COM's Server"

10.07.2015, 23:27. Показов 500. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день!
Я не самый опытный программист, но я стараюсь учиться
Решил посоветоваться с более опытными программистами после прочтения большого количества материалов и пр.
Хочу написать расширение для CAD приложения.
В одном из этапов столкнулся с такой вот задачей:
1 - Получить управление COM объектом для CAD в Runtime object table
1.1 - Контролировать выбранный COM процесс (в случае открытия нового экземпляра подобного приложения), а также его потерю (в случае закрытия приложения)
2 - Вызвать нужный процесс (например для печати в PDF, или экспорта в Excel) и получить управление.


1. Какой лучше путь избрать?
a. Получить управление над приложением через Marshal.GetActiveObject() - но, всегда ли это работает?
b. Получить управление над приложением через моникеры и контекств в ROT.

1.1 Контролировать и "удерживать" выбранный COM либо через его ID, либо через какой либо иной идентификатор. Изменение состояний в ROT можно выполнить через "наблюдателя" например Reactive Extension.

2. Вызывать процесс можно пробовать через "дефолтные пути" установки приложений, но это нехорошо, нужно вызывать зарегистрированный GUID (для "стандартных" приложений он всю жизнь (наверное?) не меняется), далее "удержание" процесса как в разделе 1.

Допустим, сегодня у меня имеются приложения Word, Excel, SolidWorks. Завтра может появится AutoCAD, PDF и пр.
Соответственно, лучше создать фабрику классов.
Также запутался.

Создал генерик "обертки" для COM классов:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace COMServer         
{
    public interface ICOMType<T>
    {
        T Item
        {
            get;
            set;
        }
 
        int ProcessID
        {
            get;
        }
 
        string Build
        {
            get;
        }
 
        string Version
        {
            get;
        }
 
        int Name
        {
            get;
        }
 
        string GetNameOpenProject();
    }
}

Где Т - это интерфейс COM класса

С фабрикой дженериком ну просто ступор


C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace COMServer
{
    public abstract class COMTypeFactory<TResult>
    {
        public COMTypeFactory()
        {
            // какой нибудь конструктор
        }
 
        public override TResult CallExistInstance()
        {
            // Проблема
        }
    }
}
Помогите написать генерик фабрику обертку и пример инициализации класса (например Excel)

Заранее благодарю за конструктивный и полезный диалог
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.07.2015, 23:27
Ответы с готовыми решениями:

интерфейс LCD панелей COMS
где про него почитать ? может быть ктото уже реализовывал ?

Стиль написания кода
Имеется внешний класс. Внутри этого внешнего класса объявлен private static класс. Клиенты внешнего...

Правила написания кода
Я вот до сих пор не понимаю, как происходит такая вещь. Допустим: у меня есть Главная страница...

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

Правила написания кода
Всем привет!Читала о правильном написании кода, отступы, что был &quot;елочкой&quot;, но до меня так и не...

0
10.07.2015, 23:27
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.07.2015, 23:27
Помогаю со студенческими работами здесь

Стиль написания кода
Всем привет! Просматривал исходники Perl и обратил внимание на то, что стиль написания кода который...

SDK для написания дополнения к ISA Server 2000
Може кто-то писал дополнения к ISA Server 2000. Где взять SDK для него? В том что идет на диске...

Свойство "Стратегия создания кода". Большое количество ошибок
Читаю &quot;C# 5.0 и платформа .NET 4.5 Эндрю Троелсен&quot;. В главе Entity Framework он рассказывает о...

Затруднение в правильности написания кода
Пожалуйста, помогите решить проблему. Много вариантов перепробовала, ничего особо не получалось,...

Программа для написания кода
Кто может посоветовать лучшую среду для веб программирования !

Стиль написания кода. Отступы
Что лучше: проблелы или табуляция? Ибо поначалу я слышал и был уверен что лучше использвать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru