2016-02-22 5 views
0

У меня есть приложение для окон (приложение синхронизации, такое как DropBox и Google Drive), а также COM-компоненты (расширения оболочки), которые я создал с помощью SharpShell, которые добавили функции в файловую систему Windows. Мой вопрос заключается в том, как COM взаимодействует с приложением Windows Form. например,.NET Как связаться с приложением Windows Forms из расширенного COM-расширения Sharpshell?

Когда я создаю синглтон в приложении Windows Forms, расширение COM не может видеть этот Singleton (null), поскольку я думаю, что это другой процесс. мой вопрос в том, что я хочу, чтобы лучшая практика взаимодействия COM-процесса (кода C#) с приложением форм Windows (также код C#) или я хочу, чтобы мой синглтон просматривался обоими приложениями.

public class FileLoggerDoubleCheckLocking : BaseFileLogger 
{ 
    private static FileLoggerDoubleCheckLocking _instance; 
    private static readonly object _lock = new object(); 

    private FileLoggerDoubleCheckLocking() 
    { 
    } 

    public static FileLoggerDoubleCheckLocking Instance 
    { 
     get 
     { 
      if (_instance == null) 
      { 
       lock (_lock) 
       { 
        if (_instance == null) 
        { 
         _instance = new FileLoggerDoubleCheckLocking(); 
        } 
       } 
      } 
      return _instance; 
     } 
    } 
} 
+0

Вы должны использовать механизм процесса Interop, как сокет, именованный канал или WCF. –

ответ