У меня есть приложение для окон (приложение синхронизации, такое как 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;
}
}
}
Вы должны использовать механизм процесса Interop, как сокет, именованный канал или WCF. –