Tag: C#的

将`List <string>`转换为逗号分隔的string

有没有一种快速的方法来将List<string>转换为C#中的逗号分隔的string ? 我这样做,但也许有一个更快或更有效的方法? List<string> ls = new List<string>(); ls.Add("one"); ls.Add("two"); string type = string.Join(",", ls.ToArray()); PS:在这个网站上search,但是大多数解决scheme都是针对Java或Python的

ASP.NET Core Web APIexception处理

在使用常规ASP.NET Web API多年后,我开始使用ASP.NET Core作为新的REST API项目。 我没有看到在ASP.NET Core Web API中处理exception的好方法。 我试图实现exception处理filter/属性: public class ErrorHandlingFilter : ExceptionFilterAttribute { public override void OnException(ExceptionContext context) { HandleExceptionAsync(context); context.ExceptionHandled = true; } private static void HandleExceptionAsync(ExceptionContext context) { var exception = context.Exception; if (exception is MyNotFoundException) SetExceptionResult(context, exception, HttpStatusCode.NotFound); else if (exception is MyUnauthorizedException) SetExceptionResult(context, exception, HttpStatusCode.Unauthorized); else if (exception […]

错误5:启动Windows服务时访问被拒绝

当我尝试启动在C#中创build的Windows服务时,出现此错误: 我的代码到目前为止: private ServiceHost host = null; public RightAccessHost() { InitializeComponent(); } protected override void OnStart(string[] args) { host = new ServiceHost(typeof(RightAccessWcf)); host.Open(); } protected override void OnStop() { if (host != null) host.Close(); host = null; } 更新#1 我通过授予帐户NETWORK SERVICE的权限解决了上述问题,但是现在我又遇到了一个问题: 更新#2 服务无法启动。 System.InvalidOperationException:服务'RightAccessManagementWcf.RightAccessWcf'具有零应用程序(非基础设施)终结点。 这可能是因为没有为您的应用程序findconfiguration文件,或者是因为在configuration文件中找不到匹配服务名称的服务元素,或者是因为服务元素中没有定义端点。 System.ServiceModel.ServiceModel.ServiceHostBase.OnOpen()上的System.ServiceModel.ServiceHostBase.InitializeRuntime()中System.ServiceModel.Description.DispatcherBuilder.InitializeServiceHost(ServiceDescription说明,ServiceHostBase serviceHost)上的System.ServiceModel.Description.DispatcherBuilder.EnsureThereAreNonMexEndpoints(ServiceDescription说明) TimeSpan超时)在System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan超时)在RightAccessHosting.RightAccessHost.OnStart(String [] args)在C:\用户….

从Process.Start隐藏控制台窗口C#

我正在尝试使用System.Diagnostics.Process类在远程计算机上创build进程。 我能够创build一个stream程。 但问题是,创build一个服务需要很长时间,并显示控制台窗口。 另一个恼人的事情是控制台窗口显示在我的窗体上,我不能做任何其他操作在窗体上。 我已经设置了所有的属性,如CreateNoWindow = true , proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden 但仍显示控制台窗口。 即使我已经redirect输出和错误到单独的stream,但没有运气。 有没有其他的方法来隐藏控制台窗口? 请帮我一下 这是我用来执行sc命令的代码的一部分。 Process proc = new Process(); proc.StartInfo.UseShellExecute = false; proc.StartInfo.CreateNoWindow = true; proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; proc.StartInfo.FileName = "sc"; proc.StartInfo.Arguments = string.Format(@"\\SYS25 create MySvc binPath= C:\mysvc.exe"); proc.StartInfo.RedirectStandardError = false; proc.StartInfo.RedirectStandardOutput = false; proc.StartInfo.UseShellExecute = false; proc.StartInfo.CreateNoWindow = true; proc.Start(); proc.WaitForExit();

在string中查找第N个字符

我需要帮助创build一个C#方法,该方法返回string中第N个字符的索引。 例如,string"dtststxtu"字符't'的第三次出现是5。 (注意这个string有4个t )

C ++ 11 std :: bind和boost :: bind之间的区别

两者有什么区别? 或者我安全地replace每一个boost::bind的std::bind在我的代码中,从而消除对Boost的依赖?

如何从UpdatePanel中的button强制完整回传?

如何从UpdatePanel中的button强制完整回传?

我如何比较(目录)在C#中的path?

如果我有两个DirectoryInfo对象,我怎么能比较它们的语义相等? 例如,下面的path应该全部被认为等于C:\temp : C:\temp C:\temp\ C:\temp\. C:\temp\x\..\..\temp\. 以下可能会或可能不会等于C:\temp : \temp如果当前工作目录位于驱动器C:\ 如果当前工作目录是C:\ temp C:\temp. C:\temp…\ 如果考虑当前的工作目录很重要,我可以自己弄清楚,所以这并不重要。 尾随点在窗口被剥离,所以这些path应该是相等的 – 但它们并没有在unix中被剥离,所以在单声道下,我期望得到其他结果。 区分大小写是可选的。 path可能存在也可能不存在,并且用户可能有或没有对path的权限 – 我更喜欢快速健壮的方法,不需要任何I / O(因此没有权限检查),但是如果有我也很高兴有什么“足够好”的

在两个列表中应用运算符的C#方法是什么?

我习惯于这样做(来自其他语言): a = 1, 2, 3; b = 5, 1, 2; c = a * b; // c = 5, 2, 6 这需要两个相同大小的列表,并将一个函数应用于其成员,一次一个地获得结果列表。 它可能是一个像乘法(上面)那样简单的函数或更复杂的函数: c = b>a ? ba : 0; // c = 4, 0, 0 我可以想到在C#中用几种不同的方法来做到这一点,但我不确定一个C#训练的程序员会怎么做。 在C#世界中进行这种操作的正确方法是什么? (我所问的唯一部分是 c = f(a,b) 。我熟悉创build列表和访问元素。)

我在哪里可以find.NET中的“钳”function?

我想钳位一个值到一个范围[a, b] : x = (x < a) ? a : ((x > b) ? b : x); 这是非常基本的。 但是我没有在类库中看到一个“钳制”的function – 至less不是在System.Math 。 (对于不知道“夹”的值是确保它位于最大值和最小值之间,如果大于最大值,则用最大值代替)