即使在ProcessWindowStyle.Hidden之后,控制台窗口仍然会弹出;

我必须从我的Windows应用程序运行控制台应用程序。 我想运行的控制台应用程序是我的应用程序中的嵌入式资源,我这样称呼它: // Run the updater and grab its output Process Updater = new Process(); Updater.StartInfo.FileName = “C:\\tmp\\tmp.exe”; Updater.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; Updater.StartInfo.UseShellExecute = false; Updater.StartInfo.RedirectStandardOutput = true; Updater.Start(); string UpdaterOutput = Updater.StandardOutput.ReadToEnd(); Updater.WaitForExit(); 它提取精细,它运行良好,它也完全抓住它的输出…但我仍然可以看到控制台窗口在运行时快速弹出。 我知道控制台弹出来自此应用程序,因为控制台标题是C:\tmp\tmp.exe 。 是否有任何完全失败的方法来隐藏控制台应用程序? 我以为使用ProcessWindowStyle.Hidden会这样做,但显然不是。 谢谢。

如何使用匿名LINQ结果填充DataTable

我有以下LINQ查询: var timesheets = from timesheet in entities.Timesheets join timesheetTask in entities.Timesheet_Task on timesheet.Id equals timesheetTask.Timesheet_Id join task in entities.Tasks on timesheetTask.Task_Id equals task.Id join project in entities.Projects on task.Project_Id equals project.Id join department in entities.Departments on project.Department_Id equals department.Id where timesheet.Employee_Id == employeeId select new { date = timesheet.Date, taskName = task.Name, projectName = […]

连接必须有效且打开错误

我收到错误:当我启动此程序时,连接必须有效并打开。 我在谷歌搜索,只发现2个人有相同的错误。 有可能解决这个问题吗? 谢谢 using System; using System.Collections.Generic; using System.Linq; using System.Windows.Forms; using System.Data.Odbc; using System.Data.Sql; namespace WindowsFormsApplication1 { static class Program { /// /// The main entry point for the application. /// [STAThread] static void Main() { string connectionString = “Server=localhost;Uid=root;Pwd=******;Database=testing;”; MySql.Data.MySqlClient.MySqlConnection connection = new MySql.Data.MySqlClient.MySqlConnection(connectionString); connection.Open(); string insertQuery = “ALTER TABLE `user` ADD […]

当作为方法组调用时,Type.GetType失败但在lambda表达式中没有

以下示例显示Type.GetType在特定方案中失败。 当我在lambda表达式中提供类名字符串(包括命名空间)时,GetType会成功,但是当我将GetType指定为方法组时,会失败。 失败: collectionOfClassNames.Select(GetType) 成功: collectionOfClassNames.Select(s => GetType(s)) 当类路径包含程序集名称时,这两种方法都会成功。 我怀疑它与当前上下文/范围有关,因为上面生成了IL。 我可以看到IL的差异,但我仍然无法解释确切的原因。 以下是演示该问题的可运行示例。 using System; using System.Linq; using System.Reflection; namespace GetTypeTest { public class FindMe{} class Program { static void Main(string[] args) { var assemblyName = Assembly.GetExecutingAssembly().FullName; var className = “GetTypeTest.FindMe”; var classAndAssembly = string.Format(“{0}, {1}”, className, assemblyName); // 1) GetType succeeds when input is “class, […]

以编程方式创建SQL Server表

我需要以编程方式在C#中创建一个SQL Server 2008表,以便从列列表中生成表的列(每个列名是表中行的名称) 我的问题是循环列列表的命令字符串是什么,并创建记录的表: List columnsName = [“col1″,”col2″,”col3”] 我想创建一个包含columnsName列的columnsName 。 但由于列表大小不恒定,我需要循环遍历列表以生成表列。

检测具有相同子项的实体

我有两个实体, Class和Student ,以多对多关系链接。 从外部应用程序导入数据时,遗憾的是一些类是一式两份创建的。 “重复”类具有不同的名称,但是相同的主题和相同的学生。 例如: {Id = 341,Title =’10rs / PE1a’,SubjectId = 60,Students = {Jack,Bill,Sarah}} {Id = 429,Title =’10rs / PE1b’,SubjectId = 60,Students = {Jack,Bill,Sarah}} 匹配这些重复类的名称没有一般规则,因此识别这两个类是重复的唯一方法是它们具有相同的SubjectId和Students 。 我想使用LINQ来检测所有重复项(并最终合并它们)。 到目前为止,我尝试过: var sb = new StringBuilder(); using (var ctx = new Ctx()) { ctx.CommandTimeout = 10000; // Because the next line takes so long! var allClasses […]

如何在C#中添加对程序集的引用?

我收到错误: 类型’system.windows.controls.control’是在未引用的程序集中定义的。 如何添加对程序集的引用?

选择子元素具有值的XElement

给出以下XML: 1 2.99 如何根据值为“1”的子元素“id”选择“platform”元素作为XElement对象? 我到目前为止: XDocument xPlatformXml = new XDocument(); XElement xel = xPlatformXml.Element(“platforms”).Elements(“platform”).Where(x => x.Value == “1”).SingleOrDefault(); 但这是寻找“平台”元素而不是“id”的价值。

从Web服务(内存不足)反序列化大型JSON对象

我有一个程序,从Web服务反序列化大对象。 在webservice调用和200之后,代码看起来像这样。 JsonConvert.DeserializeObject<List>(resp.Content.ReadAsStringAsync().Result).ToList() 有时在运行此过程时,我将得到一个聚合exception,它将内部exception显示为内存不足。 我无法确定它是否是读取JSON数据字符串(可能非常大)或导致此问题的反序列化的过程。 我想要做的是打破字符串并从响应中单独拉回每个JSON对象,然后反序列化它。 我很难找到一种方法,一次只从响应中带出一个JSON对象。 任何建议都非常感谢!

包装速率限制API调用

我有一个API调用,它接受每秒最大调用率 。 如果超过速率, 则抛出exception 。 我想把这个调用包装成一个抽象,它可以使调用率保持在极限之下。 它将像网络路由器一样:处理多个呼叫并将结果返回给正确的呼叫者,关注呼叫率。 目标是使调用代码尽可能不知道该限制。 否则,具有此调用的代码中的每个部分都必须包装到try-catch中! 例如:想象一下,您可以从可以添加2个数字的extern API调用方法。 此API可以每秒调用5次 。 高于此值的任何内容都将导致exception。 为了说明问题,限制通话费率的外部服务就像这个问题的答案中的那个 如何使用Observables构建速率限制API? 附加信息: 由于每次从代码的任何部分调用此方法时都不需要担心该限制,因此您可以考虑设计一个可以调用的包装器方法,而不必担心速率限制。 在内部你关心限制,但在外面你暴露了一个简单的异步方法。 它类似于Web服务器。 它如何将正确的结果包返回给正确的客户? 多个呼叫者将调用此方法,他们将获得结果。 这种抽象应该像代理一样。 我怎么能这样做? 我确定包装方法的公司应该是这样的 public async Task MyMethod() 在方法内部,它将执行逻辑,可能使用Reactive Extensions(Buffer)。 我不知道。 但是怎么样? 我的意思是,多次调用此方法应该将结果返回给正确的调用者。 这有可能吗? 非常感谢!