我有一个 Windows 窗体应用程序(同步应用程序,如 DropBox 和 Google Drive)以及我使用 SharpShell 创建的 COM 组件(Shell 扩展),它向 Windows 文件系统添加了功能。我的问题是 COM 如何与 Windows 窗体应用程序通信。例如
当我在我的 Windows 窗体应用程序中创建一个单例时,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;
}
}
}