Questions tagged «c#»

C#(发音为“ See Sharp”)是由Microsoft开发的一种高级,静态类型的多范例编程语言。C#代码通常针对Microsoft的.NET系列工具和运行时,其中包括.NET Framework,.NET Core和Xamarin。使用此标记可解决有关用C#或C#正式规范编写的代码的问题。


12
LINQ中的LIKE运算子
有没有办法像SQL一样比较C#LINQ表达式中的字符串 LIKE运算符? 假设我有一个字符串列表。在此列表中,我想搜索一个字符串。在SQL中,我可以这样写: SELECT * FROM DischargePort WHERE PortName LIKE '%BALTIMORE%' 而不是上面的查询需要一个linq语法。 using System.Text.RegularExpressions; … var regex = new Regex(sDischargePort, RegexOptions.IgnoreCase); var sPortCode = Database.DischargePorts .Where(p => regex.IsMatch(p.PortName)) .Single().PortCode; 我上面的LINQ语法不起作用。我怎么了?
88 c#  linq  sql-like 

11
在.Net中阅读PDF文档[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意测验或进一步的讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 是否有一个开放源代码库可以帮助我阅读/解析.Net / C#中的PDF文档?
88 c#  .net  pdf 

4
使用实体框架模型插入数据
我试图使用Entity Framework模型在数据库中插入一些数据,但是由于某些未知的原因,它什么也不做。 我在这里想念什么吗? using (var context = new DatabaseEntities()) { var t = new test { ID = Guid.NewGuid(), name = "blah", }; context.AddTotest(t); context.SaveChanges(); }


7
是否有基于任务的System.Threading.Timer替代品?
我是.Net 4.0的Task的新手,却找不到我认为是基于Task的计时器的替代品或实现,例如周期性Task。有这样的事吗? 更新 我提出了我认为是我需要的解决方案,该解决方案是将“计时器”功能包装在带有子任务的Task内,并全部利用CancellationToken并返回Task以便能够参与进一步的Task步骤。 public static Task StartPeriodicTask(Action action, int intervalInMilliseconds, int delayInMilliseconds, CancellationToken cancelToken) { Action wrapperAction = () => { if (cancelToken.IsCancellationRequested) { return; } action(); }; Action mainAction = () => { TaskCreationOptions attachedToParent = TaskCreationOptions.AttachedToParent; if (cancelToken.IsCancellationRequested) { return; } if (delayInMilliseconds > 0) Thread.Sleep(delayInMilliseconds); while …

7
是否建议prevTask.Wait()与ContinueWith一起使用(来自Tasks库)?
因此,最近有人告诉我,我如何将.ContinueWith用于任务不是正确的使用方式。我还没有在互联网上找到证据,所以我会问你们,看看答案是什么。这是我如何使用.ContinueWith的示例: public Task DoSomething() { return Task.Factory.StartNew(() => { Console.WriteLine("Step 1"); }) .ContinueWith((prevTask) => { Console.WriteLine("Step 2"); }) .ContinueWith((prevTask) => { Console.WriteLine("Step 3"); }); } 现在,我知道这是一个简单的示例,它将非常快速地运行,但是只要假设每个任务都进行更长的操作即可。因此,我被告知的是,在.ContinueWith中,您需要说prevTask.Wait();。否则,您可以在上一个任务完成之前进行工作。那有可能吗?我以为我的第二个和第三个任务只会在他们之前的任务完成后才运行。 有人告诉我如何编写代码: public Task DoSomething() { return Task.Factory.StartNew(() => { Console.WriteLine("Step 1"); }) .ContinueWith((prevTask) => { prevTask.Wait(); Console.WriteLine("Step 2"); }) .ContinueWith((prevTask) => { prevTask.Wait(); Console.WriteLine("Step …

8
单独项目中的MVC解决方案中的Web API
我正在创建一个新的MVC4项目,研究使我相信现在通过Web API框架而不是控制器操作,可以更好地实现从javascript到服务器端的通信。我的理解对吗? 我假设我可以在Web API和MVC控制器之间共享我的所有属性,因此从表面上看,这对我来说似乎不是一个巨大的变化。 设置应用程序时,我喜欢将组件拆分为多个项目。我的计划是拥有一个MVC项目和一个Web API项目。但是我遇到了问题。例如,我最终得到了2个这样的应用程序,分别设置了路由等。 所以我的问题是,在MVC应用程序中,Web API框架应该放在同一个项目中,还是应该将Web API分成自己的项目并解决问题?


6
说明C#中volatile关键字的用法
我想编写一个小程序,以可视方式说明volatile关键字的行为。理想情况下,它应该是对非易失性静态字段执行并发访问并因此而获得错误行为的程序。 在同一程序中添加volatile关键字应该可以解决此问题。 那是我无法实现的。即使尝试几次,启用优化等,我也总是得到正确的行为而没有'volatile'关键字。 您对此主题有任何想法吗?您知道如何在简单的演示应用程序中模拟此类问题吗?它取决于硬件吗?
88 c#  .net  volatile 

3
DataContractJsonSerializer和JavaScriptSerializer有什么区别?
.NET Framework随System.Runtime.Serialization.Json.DataContractJsonSerializer和System.Web.Script.Serialization.JavaScriptSerializer一起提供,它们都对JSON进行反序列化。我怎么知道何时选择这些类型中的一种?MSDN尚不清楚它们的相对优势是什么。 我们有几个使用或发出JSON的项目,到目前为止,为每个项目选择的类取决于每个项目的主要开发人员的意见。其中一些很简单,有两种关于从JSON生成托管类型的复杂逻辑(这些类型并不紧密地映射到流),但是不注重速度,一个需要速度。至少到目前为止,没有人与WCF进行交互。 虽然我对替代库感兴趣,但我希望有人也能对我的问题有所解答。

1
通过Facebook Chat API(XMPP)C#发送消息
观察 https://developers.facebook.com/docs/chat/ Platform API v2.0发行版已弃用该文档涵盖的服务和API。版本1.0被弃用后,chat.facebook.com将不再可用。 重要!阅读此书,您可能想做与该问题完全不同的事情。 我正在使用连接到Facebook Chat API的WebForms C#创建聊天。 我还研究了这个SO问题(以及所有链接)。由于Facebook auth_token现在需要,因此某些部分不再相关。 要复制此内容,您应该设置一个Facebook Web应用程序,并使用appId和设置了xmpp_login权限的用户帐户。然后Chat.aspx在代码后面创建一个,并相应地粘贴此代码。并替换硬编码的用户进行交互。 我有两个(也许三个)问题,我认为这些问题使我无法成功实现发送聊天消息的目标。 // finishes auth process文档中注明的过程与文档描述不符 (从Facebook收到基于SSL / TLS的成功消息后,我没有得到任何回应。) 我不知道应该如何设置“发送聊天消息”部分,并且由于我没有收到来自Facebook的任何消息,因此很难判断出什么地方出了问题。 这是我完整的代码,位于PasteBin上。 我还提供了一些用于添加xmpp_login权限的帮助器,为清楚起见,已删除了此类帮助器。 全局变量: public partial class Chat : Page { public TcpClient client = new TcpClient(); NetworkStream stream; private SslStream ssl; private string AppId { get; set; …


23
在C#中将包含命令行参数的字符串拆分为string []
我有一个包含要传递给另一个可执行文件的命令行参数的字符串,并且我需要以与C#如果在命令行上指定命令相同的方式提取包含单个参数的string []。通过反射执行另一个程序集入口点时,将使用string []。 为此有标准功能吗?还是有一种正确分割参数的首选方法(正则表达式?)?它必须处理'“'分隔的字符串,这些字符串可能正确包含空格,因此我不能仅对''进行拆分。 示例字符串: string parameterString = @"/src:""C:\tmp\Some Folder\Sub Folder"" /users:""abcdefg@hijkl.com"" tasks:""SomeTask,Some Other Task"" -someParam foo"; 结果示例: string[] parameterArray = new string[] { @"/src:C:\tmp\Some Folder\Sub Folder", @"/users:abcdefg@hijkl.com", @"tasks:SomeTask,Some Other Task", @"-someParam", @"foo" }; 我不需要命令行解析库,而只是获取应该生成的String []的一种方法。 更新:我必须更改预期结果以匹配C#实际生成的内容(删除了拆分字符串中多余的“”)

30
生成错误:“该进程无法访问该文件,因为该文件正在被另一个进程使用”
我有一个C#webforms应用程序,直到今天一直在畅快地工作。 今天,突然之间,每当我尝试运行该应用程序时,都会收到文件锁定错误: 无法将文件“ obj \ Debug \ MyProject.exe”复制到“ bin \ Debug \ MyProject.exe”。该进程无法访问文件“ bin \ Debug \ MyProject.exe”,因为它正在被另一个进程使用。 谷歌搜索错误不会带来明显的错误,即VS认为文件已锁定。它是绝对的Visual Studio本身锁定文件,因为当我关闭VS并重新打开它,项目执行罚款-第一次。当我尝试第二次运行它时,出现文件锁定错误。 每次我要运行该应用程序时,关闭VS并重新打开都不是可行的解决方法!如何找出锁定文件的内容,并阻止它被锁定? 编辑:另一个有趣的发现:我什至不必运行该应用程序。只需编译一次就会导致文件锁定。我不能连续两次编译! 此问题特定于我的解决方案中的一个项目。所有其他项目都可以正常运行,并且可以执行多次。只是这个项目被锁定了。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.