我尝试了两种不同的方法来启动一个过程.
首先
该定义被定义为Start方法的参数:
System.Diagnostics.Process.Start("excel", string.Format("\"{0}\"", ExcelFileBox.Text.ToString()));
我的想法:
这个开始很好,但我不知道如何从中得到反馈.
第二
我开始研究,ProcessStartInfo
因为我想知道Excel是否成功启动 - 例如,虽然它很可能存在于用户的机器上,但我无法保证向用户表明它已成功启动是愚蠢的什么时候没有.
System.Diagnostics.ProcessStartInfo startinfo = new System.Diagnostics.ProcessStartInfo
{
FileName = "excel",
Arguments = string.Format("\"{0}\"", ExcelFileBox.Text.ToString()),
ErrorDialog = true,
UseShellExecute = false,
WorkingDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
};
try
{
System.Diagnostics.Process.Start(startinfo);
}
catch (Exception err)
{
Console.WriteLine(err.Message);
}
Run Code Online (Sandbox Code Playgroud)
我的想法:
这给出了错误:"系统找不到指定的文件",但不清楚它是否意味着Excel应用程序或我的文件.无论如何,虽然我很欣赏错误信息的能力,但我现在不应该接受.
关于如何成功发现的想法,建议和想法?
解决了
我把启动流程的第一种方法放到了try-catch中,它的工作非常精彩.
这个问题扩展到我之前问题的一个答案:如何在exe ...中保存用户注册...(C#).
这个想法本身对我来说仍然很新,但看起来似乎有道理.我第一次尝试从一个不同的应用程序内部向exe附加一个字符串不起作用.然后有点聪明,并尝试附加字节.仍然没有运气.
我在Windows Portable Executable文件上找到了各种文档:
http://en.wikipedia.org/wiki/Portable_Executable
http://msdn.microsoft.com/en-us/magazine/bb985997.aspx
http://msdn.microsoft.com/en-us/windows/hardware/gg463125
坦率地说,我理解得很少,以至于对我来说没什么用处.更多的使用我能够找到一个delphi教程,描述了向可执行文件添加"有效负载"的想法.它继续说要做到这一点,你需要让exe知道,并且还能够跟踪你把它放在哪里......或者其他东西.除了我从代码本身可以猜到的东西之外,我对delphi一无所知. http://www.delphidabbler.com/articles?article=7&part=2
最有用的只是一个示例或如何在可执行文件中添加和检索一小段信息的链接.我想要从Linux服务器上的C#Forms应用程序执行此操作作为php脚本运行.我想一个独立的C++应用程序接受信息作为参数应该能够做到这一点.
我也对其他想法持开放态度.
谢谢.
我试图将急切的类实例化转换为延迟实例化.我在整个代码库中都遵循了热切的模式,但是现在想要将它更改为懒惰的替代方案(并在我使用时删除setter).ReSharper的自定义模式查找/替换似乎是完美的工具.
快乐
如果我有private....
它自己,模式搜索很好.
如果我有public....
它自己,模式搜索很好.
伤心
一旦我尝试将两条线组合在一起,就会失败,因为"模式很模糊"
未知??
如果它有帮助,当我private...
在第二个blip中有行和粘贴时,自动占位符机制无法执行任何操作$name$
.同样,这两个部分都可以完美地完成.我不知所措.
注意:"替换"框中有类似的行为,这就是为什么我在对问题的描述中忽略了它.
2015年12月11日更新
我在ReSharper 10(Ultimate)中尝试了这个,我得到了相同的失败行为.
2016年9月8日更新
"ReSharper Ultimate 2016.1.2"的最新测试仍然失败.
所以我有一个文件,看起来像
<a xmlns="uri1" xmlns:pre2="uri2">
<b xmlns:pre3="uri3">
<pre3:c>
<stuff></stuff>
<goes></goes>
<here></here>
</pre3:c>
<pre3:d xmlns="uri4">
<under></under>
<the></the>
<tree></tree>
</pre3:d>
</b>
</a>
Run Code Online (Sandbox Code Playgroud)
我想要一个可以得到我的 xpath 表达式<under>
。
它有一个 uri4 的 namespaceURI。
现在我的表情是这样的:
//ns:a/ns:b/pre3:d/pre4:under
Run Code Online (Sandbox Code Playgroud)
我让命名空间管理器为默认命名空间(在本例中为 uri1)添加了“ns”,并分别为 uri2、uri3 和 uri4 定义了 pre2、pre3 和 pre4。
我收到错误“表达式必须评估为节点集”。
我知道该节点存在。我知道直到pre4:under
在我的 xpath中的所有内容都可以正常工作,因为我在文档的其余部分使用它没有任何问题。这pre4:under
是导致错误的附加因素,我不确定为什么。
有任何想法吗?
谢谢。
解析度:
感谢大家坚持认为它是正确的——它是正确的。但是......在我的代码中,我将“pre4”作为“64”(一个变量),它不喜欢一个整数作为前缀。将其更改为“d”+ myintvariable 有效。
var Customer = (from c in DNAContextSQL.Customers
where c.LastName != ""
orderby c.PKID_Customer descending
select new
{
c.PKID_Customer,
c.OrganizationName,
c.FirstName,
c.LastName,
c.Phone,
c.Extension
}).Distinct().ToList();
Run Code Online (Sandbox Code Playgroud)
我知道这是基本的.我发现它为什么不起作用,我找不到任何好的理由.发送到SQL事件探查器的查询似乎没有order by
子句.
有任何想法吗?
我可以得到它,.OrderByDescending(...)
但想知道这种疯狂背后的原因.
我有一段代码,大致如下:
async Task Initialize(){
await TaskScheduler.Default;
var service = await CreateServiceAsync();
await TaskScheduler.Default;
var status = await service.CheckStatusAsync();
// ...
}
Run Code Online (Sandbox Code Playgroud)
TaskScheduler.Default
如果我们不使用任务调度程序来安排任何事情,那么等待有什么用呢?如果删除它们,我可能会破坏什么?
这是 Visual Studio Extension (VSIX) 项目的启动代码。
.net ×2
c# ×2
async-await ×1
excel ×1
exe ×1
process ×1
resharper ×1
sql-order-by ×1
vsix ×1
xpath ×1