使用try catch返回yield,我该如何解决它

我有一段代码: using (StreamReader stream = new StreamReader(file.OpenRead(), Encoding)) { char[] buffer = new char[chunksize]; while (stream.Peek() >= 0) { int readCount = stream.Read(buffer, 0, chunksize); yield return new string(buffer, 0, readCount); } } 现在我必须使用try-catch块来包围它 try { using (StreamReader stream = new StreamReader(file.OpenRead(), Encoding)) { char[] buffer = new char[chunksize]; while (stream.Peek() >= 0) { int […]

为什么C#collection-properties在调用它们的属性时没有被标记为过时?

我试图将类上的集合属性标记为Obsolete以查找所有出现并在我的警告列表中保留缩小的事项列表,因为我们需要用其他东西替换此集合属性。 编辑 :我已通过Microsoft Connect提交此问题 , 问题#417159 。 编辑16.11.2010 :在编译.NET 3.5和4.0时,validation现在可以在C#4.0编译器中使用。 我在发布的代码中收到4个警告,包括评论“Not OK?”的警告。 然而,令我惊讶的是,该列表只包含了一些内容,远远少于我所知道的内容,并且spotchecks告诉我,由于某种原因,警告列表中的编译器并不总是将该属性的使用标记为过时。 这是一个示例程序,可以在Visual Studio 2008中编译。 请注意标记为#1-#4的末尾附近的四行,其中,我希望所有人都报告所使用的属性已过时,但#3不是,而且似乎如果我继续前进直接对集合属性或方法,属性本身的使用不会被标记为过时。 请注意,#3和#4引用相同的属性,#4标记为使用过时的属性,而#3则不是。 测试表明,如果在表达式中,我访问属性返回的集合的属性或方法,编译器不会抱怨。 这是一个错误,还是我不知道的C#编译器的“隐藏的gem”? using System; using System.Collections.Generic; namespace TestApp { public abstract class BaseClass { [Obsolete] public abstract String Value { get; } [Obsolete] public abstract String[] ValueArray { get; } [Obsolete] public abstract List ValueList { get; […]

部署在iis上的asp.net核心应用程序遇到500内部服务器错误

:(糟糕.500内部服务器错误启动应用程序时出错。 当我向我的asp.net核心应用程序添加数据库function并将其部署到iis时,会出现此消息。 当我在Visual Studio中开发它时,一切都很顺利。 但部署后,出现此错误消息。 我尝试使用dotnet myapp.dll在deploy文件夹中运行我的应用程序,并发现它运行良好。 问题很可能与iis有关。 我试图将..到web.config,但它似乎没用。 实际上有什么问题,或者有没有其他方法可以查看详细的错误信息以帮助找出发生了什么?

C#从UDP消息中获取发件人地址

我有一个嵌入式以太网接口(Lantronix XPort),它响应UDP广播及其识别信息。 我可以正确地组播“魔术包”和数据报,但是我还需要找出哪个IP地址发送该响应数据报。 如果它是TCP,我会执行socket.RemoteEndPoint,但是当应用于UDP套接字时会引发exception。 public class Program { public static void Main(string[] args) { // magic packet byte[] magicPacket = new byte[4] { 0, 0, 0, 0xf6 }; // set up listener for response Socket sendSocket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); // EDIT: Also, had to add this to for it to broadcast correctly sendSocket.EnableBroadcast […]

你为什么不能UnRegisterStartupScript?

对我来说,你可以做到有点奇怪.. Page.ClientScript.RegisterStartupScript(this.GetType(), “KeyName”, “alert(‘changed my mind’)”, true); 然后,您无法取消注册或停止以编程方式呈现javascript。 为什么微软会这样做? 我不喜欢这里的工作.. http://hemant-vikram.blogspot.com/2005/11/unregister-startup-script-workaround.html 而且我不喜欢只是重新注册它并让它什么都不做的选择。 思考?

Response.redirect不保留HttpContext.Current.Items

我正在学习HttpContext并发现了这一点 将为每个给ASP.Net应用程序的请求重新构造HttpContext对象 现在,考虑一个案例,当我有两页时。 WebForm1和Webform2。 在Form1中,我正在编写下面提到的代码并重定向到form2。 HttpContext.Current.Items.Add(“Key”, “Value”); 询问 当我使用Server.Transfer时,此密钥仍然存在,而使用Response.Redirect时并非如此 混乱 无论何时生成新请求,都会创建HttpCopntext对象。 此外,会话保持不变。 这是HttpContext的一部分。 HttpContext.Current.Session 如果Session可以持久化,为什么不能在Response.Redirect HttpContext.Current.Items ?

允许用户通过Response.WriteFile()从我的网站下载

我试图通过点击我的网站上的链接以编程方式下载文件(这是一个位于我的网络服务器上的.doc文件)。 这是我的代码: string File = Server.MapPath(@”filename.doc”); string FileName = “filename.doc”; if (System.IO.File.Exists(FileName)) { FileInfo fileInfo = new FileInfo(File); long Length = fileInfo.Length; Response.ContentType = “Application/msword”; Response.AddHeader(“Content-Disposition”, “attachment; filename=” + fileInfo.Name); Response.AddHeader(“Content-Length”, Length.ToString()); Response.WriteFile(fileInfo.FullName); } 这是一个buttonclick事件处理程序。 好的我可以对文件路径/文件名代码做一些事情来使它更整洁,但是当点击按钮时,页面会刷新。 在localhost上,此代码工作正常,并允许我下载文件确定。 我究竟做错了什么? 谢谢

如何查找具有动态ID的ExtJS元素

我正在使用Selenium,需要获取控件的ID,但ID是动态的,我无法得到它。 数字1122是动态的,还有其他按钮具有相同的开始button-###+btnWrap 。

并非所有程序集都从bin文件夹加载到AppDomain中

我有以下方法应该检索加载的本地(在bin文件夹)程序集的列表: static IEnumerable GetLocalAssemblies() { Assembly callingAssembly = Assembly.GetCallingAssembly(); string path = new Uri(Path.GetDirectoryName(callingAssembly.CodeBase)).AbsolutePath; var assemblies = AppDomain.CurrentDomain.GetAssemblies(); return assemblies.Where(x => !x.IsDynamic && new Uri(x.CodeBase).AbsolutePath.Contains(path)).ToList(); } 但是,程序集列表缺少我需要它的几个程序集。 我需要的程序集是管理的(c#.net 4),在项目中引用,并存在于bin文件夹中。 为什么bin文件夹中存在的二进制文件在应用程序启动时不会进入AppDomain?

.NET相当于Java的BufferedReader

我用Java编写代码 public void read() throws IOException { BufferedReader in = new BufferedReader(new InputStreamReader(this.socket.getInputStream(), “UTF8”)); String requestURL = null; Vector property = new Vector(); String line; //MORE OF CODE } 如果您需要完整代码,请粘贴。 我想把它改写成C# 但我不知道哪个等同于BufferReader。 我有套接字,我想从套接字InputStream读取(使用UTF8) 谢谢。