我试图在Visual Studio扩展包中的VSSDK和Roslyn SDK之间架起桥梁,并且一直很难用.Visual Studio提供的ActivePoint.AbsoluteCharOffset与使用FindToken(offset)时从Roslyn获取的元素不匹配.我很确定这与我的当前工作黑客的每一方如何计算EOL字符有关,但我不是100%,我的黑客将长期坚持.
我的黑客就是这条线: charOffset += point.Line;
我在char偏移量上添加行数,这似乎有效,所以我猜我正在添加所有被activepoint计数忽略的换行符.
助手
private VisualStudioWorkspace workspace = null;
public RoslynUtilities(VisualStudioWorkspace workspace)
{
this.workspace = workspace;
}
public Solution Solution { get { return workspace.CurrentSolution; } }
public Document GetDocumentFromPath(string fullPath)
{
foreach (Project proj in this.Solution.Projects)
{
foreach (Document doc in proj.Documents)
{
if (doc.FilePath == fullPath)
return doc;
}
}
return null;
}
public SyntaxTree GetSyntaxTreeFromDocumentPath(string fullPath)
{
Document doc = GetDocumentFromPath(fullPath);
if (doc != null)
return doc.GetSyntaxTreeAsync().Result;
else
return null;
} …Run Code Online (Sandbox Code Playgroud) c# visual-studio visual-studio-extensions roslyn visual-studio-2015
我有一个AutoUpdater应用程序,可以启动另一个应用程序.无论如何强制第二个应用程序只有在AutoUpdater启动时才能运行?
问题是,一些最终用户将在其桌面上创建主应用程序文件的快捷方式.这成为一个问题,因为它应该在启动之前检查应用程序的更新,并且它们不会收到我们的更新.
我有一个想法是通过WCF创建一个IPC通道,并从AutoUpdater向另一个应用程序发出一个非常简单的命令.如果其他应用程序在2或3秒内没有收到该命令,它将自行关闭.
这似乎比应该需要的代码/开销更多.有没有更简单的方法?
谢谢!
我发现一些非常奇怪的东西,如果我在excel和c#中使用下面的表达式,我会得到不同的结果.
(1) ^ (-12)
Run Code Online (Sandbox Code Playgroud)
Excel给出1和c#给出-11.
哪一个是对的?
我正在经历一些奇怪的行为。让我试着解释一下,我将代码精简到最低限度,但问题仍然存在。所以首先,我使用 VS2013 和 .NET 4.0,我使用的是 Windows 8.1。
所以我有一个自定义UserControl与TextBox多数民众赞成正在通过使用ToolStripControlHost,如果我专注于这个文本框和命中TAB通过控制这个文本框的左侧,它只是个周期。如果我将它聚焦并点击SHIFT+ TAB,它会在它右侧的按钮之间循环。

所以这是我的表格的一个例子。中间的文本框是一个自定义控件。我的代码(尽可能简化)如下所示:
[ToolStripItemDesignerAvailability(ToolStripItemDesignerAvailability.ToolStrip | ToolStripItemDesignerAvailability.StatusStrip)]
public class ToolStripTestControl : ToolStripControlHost
{
public ToolStripTestControl() : this(new TestControl()) { }
public ToolStripTestControl(Control c) : base(c) { }
}
public class TestControl : UserControl
{
private TextBox _textBox = new TextBox();
public TestControl()
{
_textBox.Dock = DockStyle.Fill;
this.Controls.Add(_textBox);
}
protected override Size DefaultMinimumSize { get { return new Size(100, 22); } }
}
Run Code Online (Sandbox Code Playgroud)
只需创建一个新的 …
我不确定标题是否准确描述了我想要问的内容......
基本上,Visual Studio如何查看CSPROJ中的代码文件并确定方法或变量的引用,或者using代码中是否未使用语句?显然,它不仅仅是进行简单的文本解析,而且它似乎在进行构建之前工作,因此我认为它不会引用程序集/ CLR.
我是否可以从外部应用程序绑定一个API,如果我让用户选择他们的CSPROJ或SLN文件,并且能够报告using文件中未使用的语句,或者在代码中没有被调用的方法/变量?
我问,因为我正在考虑构建某种报告工具来显示可能发生代码清理的区域,但我不确定从哪里开始.
谢谢!
编辑:作为一个后续问题,有没有类似的工具?
如何将以下字符串数组转换为类型数组(或函数?或者这些验证器是什么......)?
let valStrings: string[] = ["Validators.required", "Validators.maxLength(10)"];
Run Code Online (Sandbox Code Playgroud)
并将其转换为:
let validators: ValidatorFn[] = [ Validators.required, Validators.maxLength(10) ];
Run Code Online (Sandbox Code Playgroud)
我有一个返回验证规则的网络服务。这是尝试集中所有验证规则,以保持服务器和客户端验证同步,因此字符串来自HttpClient具有 JSON 结果的调用。当然,我们仍然将实际的实现分开,但至少两者定义的规则应该相同。
该验证器数组将被传递到 a 中,FormControl以利用 Angular 中的反应式表单进行客户端验证。
eval()这是应该使用的地方吗?
谢谢你-亚当
这是我的代码:
var hi = "hi"
document.write(hi)
hi.style.color="#ff0000";
document.write(hi)
Run Code Online (Sandbox Code Playgroud)
为什么它不会改变颜色?我一直得到"无法读取未定义的属性'样式".
c# ×5
winforms ×2
.net ×1
angular ×1
angular5 ×1
colors ×1
excel ×1
javascript ×1
roslyn ×1
typescript ×1