Questions tagged «c#»

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

7
我应该使用AppDomain.CurrentDomain.BaseDirectory还是System.Environment.CurrentDirectory?
我在同一文件夹中有两个exe文件,我可以从exe1中的一个按钮运行exe2。今天,我通过一个远程(终端服务)会话观察一个客户,并且exe2未能运行“找不到文件”错误,但是当我们检查时exe1位于同一目录中。所以我应该使用AppDomain.CurrentDomain.BaseDirectory或System.Environment.CurrentDirectory吗? 谢谢
86 c#  exception 

5
即使GridView位于表单标签内,也必须将GridView置于带有runat =“ server”的表单标签内
<form runat="server" id="f1"> <div runat="server" id="d"> grid view: <asp:GridView runat="server" ID="g"> </asp:GridView> </div> <asp:TextBox runat="server" ID="t" TextMode="MultiLine" Rows="20" Columns="50"></asp:TextBox> </form> 后面的代码: public partial class ScriptTest : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { g.DataSource = new string[] { "a", "b", "c" }; g.DataBind(); TextWriter tw = new StringWriter(); …
86 c#  .net  asp.net 

10
如何使用Selenium WebDriver C#从下拉列表中选择一个选项?
我正在尝试选择一个选项进行网络测试。可以在此处找到一个示例:http : //www.tizag.com/phpT/examples/formex.php 除了选择选项以外,其他所有功能都很好。如何通过值或标签选择选项? 我的代码: using OpenQA.Selenium.Firefox; using OpenQA.Selenium; using System.Collections.ObjectModel; using System.Text.RegularExpressions; using System.Threading; using System.Diagnostics; using System.Runtime.InteropServices; class GoogleSuggest { static void Main() { IWebDriver driver = new FirefoxDriver(); //Notice navigation is slightly different than the Java version //This is because 'get' is a keyword in C# driver.Navigate().GoToUrl("http://www.tizag.com/phpT/examples/formex.php"); …

9
在.NET中乘以TimeSpan
如何在C#中乘以TimeSpan对象?假设变量duration是TimeSpan,例如 duration*5 但这给了我一个错误“运算符*不能应用于TimeSpan和int类型”。这是我目前的解决方法 duration+duration+duration+duration+duration 但这并不扩展到非整数倍。 duration * 3.5
86 c#  .net  date  time  timespan 


5
HttpWebRequest.GetResponse()失败时如何获取错误信息
我正在初始化HttpWebRequest,然后检索它的响应。有时,我收到500(或至少5 ##)错误,但没有描述。我对两个端点都有控制权,希望接收端能获得更多信息。例如,我想将异常消息从服务器传递到客户端。使用HttpWebRequest和HttpWebResponse是否可能? 码: try { HttpWebRequest webRequest = HttpWebRequest.Create(URL) as HttpWebRequest; webRequest.Method = WebRequestMethods.Http.Get; webRequest.Credentials = new NetworkCredential(Username, Password); webRequest.ContentType = "application/x-www-form-urlencoded"; using(HttpWebResponse response = webRequest.GetResponse() as HttpWebResponse) { if(response.StatusCode == HttpStatusCode.OK) { // Do stuff with response.GetResponseStream(); } } } catch(Exception ex) { ShowError(ex); // if the server returns …



7
使用msbuild执行文件系统发布配置文件
我有一个用VS2010创建的ac#.Net 4.0项目,现在正在用VS2012访问。 我正在尝试仅将所需的文件从此网站发布到目标位置(C:\ builds \ MyProject [Files]) 我的文件结构: ./ProjectRoot / MyProject.csproj ./ProjectRoot/Properties/PublishProfiles/FileSystemDebug.pubxml 我正在通过MSBuild运行以下命令: C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ MSBuild.exe ./ProjectRoot/MyProject.csproj / p:DeployOnBuild = true /p:PublishProfile=./ProjectRoot/Properties/PublishProfiles/FileSystemDebug.pubxml 这是FileSystemDebug.pubxml中的xml <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <PropertyGroup> <WebPublishMethod>FileSystem</WebPublishMethod> <LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration> <LastUsedPlatform>Any CPU</LastUsedPlatform> <SiteUrlToLaunchAfterPublish /> <ExcludeApp_Data>False</ExcludeApp_Data> <publishUrl>C:\builds\MyProject\</publishUrl> <DeleteExistingFiles>True</DeleteExistingFiles> </PropertyGroup> </Project> 产生的行为是: 在此处创建一个zip文件:./ProjectRoot/obj/Debug/Package/MyProject.zip 什么都没有部署到<publishUrl>C:\builds\MyProject\</publishUrl>WTF 所创建的zip文件是一顿可口的早餐,并且充满了该应用程序不需要的文件。 当我通过Visual …

3
DLL中包含什么?它如何工作?
我总是在我的C#代码中引用DLL,但我想澄清它们仍然是个谜。这是有关DLL问题的一种脑力激荡。 我知道DLL是一个动态链接的库,这意味着另一个程序可以在运行时访问该库以获取“功能”。但是,请考虑以下带有Web.dll和的ASP.NET项目Business.dll(Web.dll是前端功能,它引用Business.dll类型和方法)。 在什么时候Web.dll动态链接到Business.dll?您注意到在Windows HDD中使用Word(等)时看似很小的任务经常会发生混乱,而我认为Word正在关闭并动态链接其他DLL的功能吗? 1a。另外,什么加载和链接DLL-OS或某些运行时框架(如.NET框架)? 1b。“链接”的过程是什么?是否进行兼容性检查?加载到同一内存中?链接实际上是什么意思? 什么实际执行DLL中的代码?它是否由处理器执行,或者在处理器理解DLL中的代码之前还有其他翻译或编译阶段? 2a。对于使用C#.NET内置的DLL,正在运行什么:.NET框架或直接操作系统? Linux中的DLL是否可以在Windows系统上运行(如果存在),或者它们特定于操作系统? DLL是否特定于特定框架?使用C#.NET构建的DLL是否可以被使用Borland C ++构建的DLL使用? 4a。如果对4的回答为“否”,那么DLL的意义是什么?为什么各种框架不使用自己的链接文件格式?例如:.NET内置的.exe知道.abc文件类型可以链接到其代码中。 让我们再回到Web.dll/Business.dll例子-让客户的类类型,我需要参考Business.dll的Web.dll。这必须意味着Business.dll包含某种有关客户类别实际的规范。如果我编译了我的Business.dll文件Delphi,例如:C#会理解它并能够创建客户类,或者是否存在某种标头信息或显示“嘿,抱歉,您只能从另一个Delphi DLL使用我” ? 5a。方法同样适用;如何CreateInvoice()在DLL中编写方法,在C ++中进行编译,然后从C#访问并运行它?是什么阻止或允许我这样做? 关于DLL劫持,替换的(坏的)DLL当然必须包含与被劫持的DLL完全相同的方法签名和类型。我想,如果您能找到原始DLL中可用的方法,这将不难。 6a。我的C#程序在决定是否可以访问另一个DLL?如果我被劫持的DLL包含与原始DLL完全相同的方法和类型,但它是用另一种语言编译的,那么它将起作用吗? 什么是DLL导入和DLL注册?
86 c#  .net  dll 

7
如何在C#6中使用带转义符的转义符?
我一直在使用字符串插值并喜欢它,但是遇到一个问题,我试图在输出中包含反斜杠,但无法使其正常工作。 我想要的是这样的.. var domain = "mydomain"; var userName = "myUserName"; var combo = $"{domain}\{userName}" 我想要组合的输出是 myDomain\myUserName 我得到的是关于\是转义字符的语法错误。如果我输入\\,则snytax错误消失了,但输出为myDomain \\ myUsername 如何在插入的字符串中包含转义字符?

4
如何在循环中使用等待
我正在尝试创建一个异步控制台应用程序,该应用程序在集合上做一些工作。我有一个使用并行循环的版本,另一个使用异步/等待的版本。我期望async / await版本的工作方式类似于并行版本,但是它是同步执行的。我究竟做错了什么? class Program { static void Main(string[] args) { var worker = new Worker(); worker.ParallelInit(); var t = worker.Init(); t.Wait(); Console.ReadKey(); } } public class Worker { public async Task<bool> Init() { var series = Enumerable.Range(1, 5).ToList(); foreach (var i in series) { Console.WriteLine("Starting Process {0}", i); var …
86 c#  .net  async-await 

3
实体框架SaveChanges()与SaveChangesAsync()和Find()与FindAsync()
我一直在寻找以上两对之间的差异,但是没有找到任何清楚地解释它以及何时使用一个或另一个的文章。 那么SaveChanges()和之间有什么区别SaveChangesAsync()? 在Find()和之间FindAsync()? 在服务器端,当我们使用Async方法时,我们还需要添加await。因此,我认为它在服务器端不是异步的。 它仅有助于防止UI在客户端浏览器上阻塞吗?还是它们之间有什么优缺点?

7
string。加入List <int>或其他类型
我想将整数数组或整数列表转换成逗号分隔的字符串,如下所示: string myFunction(List&lt;int&gt; a) { return string.Join(",", a); } 但是string.Join仅List&lt;string&gt;作为第二个参数。做这个的最好方式是什么?
86 c#  arrays  string 

5
如何验证域凭证?
我想针对域控制器验证一组凭据。例如: Username: STACKOVERFLOW\joel Password: splotchy 方法1.使用模拟查询Active Directory 很多人建议在Active Directory中查询某些内容。如果抛出异常,则说明凭据无效-如该stackoverflow问题所建议。 但是,此方法有一些严重的缺点: 您不仅在验证域帐户,而且还在进行隐式授权检查。也就是说,您正在使用模拟令牌从AD读取属性。如果原本有效的帐户无权读取广告怎么办?默认情况下,所有用户都具有读取访问权限,但是可以将域策略设置为禁用受限帐户(和/或组)的访问权限。 与AD绑定会产生很大的开销,必须在客户端上加载AD模式缓存(DirectoryServices使用的ADSI提供程序中的ADSI缓存)。这既是网络,又是AD服务器,都非常耗资源-对于简单的操作(如验证用户帐户)而言,费用太高。 对于非例外情况,您要依靠例外失败,并假设这意味着无效的用户名和密码。其他问题(例如网络故障,AD连接故障,内存分配错误等)随后会误认为身份验证失败。 方法2。LogonUser Win32 API 其他人建议使用LogonUser()API函数。这听起来不错,但不幸的是,调用用户有时有时需要通常仅授予操作系统本身的权限: 调用LogonUser的进程需要SE_TCB_NAME特权。如果调用过程没有此特权,则LogonUser失败,并且GetLastError返回ERROR_PRIVILEGE_NOT_HELD。 在某些情况下,调用LogonUser的进程还必须启用SE_CHANGE_NOTIFY_NAME特权;例如,否则,LogonUser失败,并且GetLastError返回ERROR_ACCESS_DENIED。对于本地系统帐户或属于管理员组成员的帐户,不需要此特权。默认情况下,SE_CHANGE_NOTIFY_NAME为所有用户启用,但是某些管理员可能为所有人禁用它。 发放“充当操作系统的一部分”特权不是您要轻易采取的行动-正如Microsoft在知识库文章中指出的那样: ...正在调用LogonUser的进程必须具有SE_TCB_NAME特权(在用户管理器中,这是“充当操作系统的一部分”权限)。SE_TCB_NAME特权非常强大,不应仅授予任意用户一个特权 ,以便他们可以运行需要验证凭据的应用程序。 此外,LogonUser()如果指定了空白密码,则对的调用将失败。 验证一组域凭据的正确方法是什么? 我碰巧是从托管代码调用的,但这是Windows的一个普遍问题。可以假定客户安装了.NET Framework 2.0。

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.