是否可以在 c# 中将 VS 快捷方式用作事件
Is it possible to use VS Shortcut as a Event In c#
希望创建热自定义热重载功能。我需要创建一个事件 他们应该能够收听保存命令。假设有两个项目
相同的解决方案。
解决方案:
项目A
Class 测试
项目B
当我在项目 A class test 中更改某些内容时,在我使用 Ctrl+s 后,它应该在项目 B 中触发一个方法。我想听 File 将事件保存在项目 A Test Class .有什么办法可以做到这一点。
我尝试了两种方案
尝试方法一:-
public virtual event EnvDTE._dispDocumentEvents_DocumentSavedEventHandler DocumentSaved;
public EnvDTE.DTE DTE { get; }
private EnvDTE.Document document;
document = DTE.ActiveDocument;
DocumentSaved?.Invoke(document);
这里我收到一个 Null 引用错误。在这种情况下,我不确定我是否传递了正确的文档来调用事件。
第二个是
using (var filewatcher = new FileSystemWatcher(fullpath))
{
// filewatcher.IncludeSubdirectories = false;
filewatcher.InternalBufferSize = 32768;
filewatcher.Filter = "*.cs";
filewatcher.NotifyFilter = NotifyFilters.LastWrite;
filewatcher.EnableRaisingEvents = true;
filewatcher.Changed += FileChanged;
Console.ReadLine();
}
private void FileChanged(object sender, FileSystemEventArgs e)
{
Console.WriteLine($"File Changed:{e.Name}-path{e.FullPath}");
}
如果文件在 Visual studio 之外更改,我可以通过这种方式收听保存命令。但是当试图观察 Vs FileSystemWatcher 内部的变化时无法捕捉到文件修改。
您可以像这样订阅 DocumentSaved 事件:
events = DTE.Events;
documentEvents = events.DocumentEvents;
documentEvents.DocumentSaved += OnDocumentSaved;
OnDocumentSaved 是您的处理程序。
希望创建热自定义热重载功能。我需要创建一个事件 他们应该能够收听保存命令。假设有两个项目 相同的解决方案。 解决方案: 项目A Class 测试 项目B 当我在项目 A class test 中更改某些内容时,在我使用 Ctrl+s 后,它应该在项目 B 中触发一个方法。我想听 File 将事件保存在项目 A Test Class .有什么办法可以做到这一点。
我尝试了两种方案
尝试方法一:-
public virtual event EnvDTE._dispDocumentEvents_DocumentSavedEventHandler DocumentSaved;
public EnvDTE.DTE DTE { get; }
private EnvDTE.Document document;
document = DTE.ActiveDocument;
DocumentSaved?.Invoke(document);
这里我收到一个 Null 引用错误。在这种情况下,我不确定我是否传递了正确的文档来调用事件。
第二个是
using (var filewatcher = new FileSystemWatcher(fullpath))
{
// filewatcher.IncludeSubdirectories = false;
filewatcher.InternalBufferSize = 32768;
filewatcher.Filter = "*.cs";
filewatcher.NotifyFilter = NotifyFilters.LastWrite;
filewatcher.EnableRaisingEvents = true;
filewatcher.Changed += FileChanged;
Console.ReadLine();
}
private void FileChanged(object sender, FileSystemEventArgs e)
{
Console.WriteLine($"File Changed:{e.Name}-path{e.FullPath}");
}
如果文件在 Visual studio 之外更改,我可以通过这种方式收听保存命令。但是当试图观察 Vs FileSystemWatcher 内部的变化时无法捕捉到文件修改。
您可以像这样订阅 DocumentSaved 事件:
events = DTE.Events;
documentEvents = events.DocumentEvents;
documentEvents.DocumentSaved += OnDocumentSaved;
OnDocumentSaved 是您的处理程序。