Tag: .net

为什么TimeSpan和Guid Structs可以比较为null?

我注意到一些.NET结构可以与null进行比较。 例如: TimeSpan y = new TimeSpan(); if (y == null) return; 将编译得很好(与Guid结构相同)。 现在我知道stucts是值类型,并且上面的代码不应该编译,除非有一个operator ==的重载,它接受一个对象。 但是,据我所知,没有。 我用Reflector和MSDN上的文档查看了这个类。 他们两个确实实现了以下接口: IComparable, IComparable, IEquatable 但是,尝试使用相同的接口似乎没有帮助: struct XX : IComparable, IComparable, IEquatable { public int CompareTo(Object obj) { return 0; } public int CompareTo (XX other){ return 0; } public bool Equals (XX other){ return false; } public override […]

C#/ .NET:检测程序是作为服务还是作为控制台应用程序运行

我有一个C#/ .NET程序,可以作为控制台应用程序和服务运行。 目前我给它一个命令行选项来启动作为控制台应用程序,但我想避免这种情况。 是否有可能以编程方式检测我的程序是否作为服务启动? 如果它是纯Win32,我可以尝试使用StartServiceCtrlDispatcher作为服务启动并返回到控制台,如果它返回ERROR_FAILED_SERVICE_CONTROLLER_CONNECT,但System.ServiceProcess.ServiceBase.Run()弹出errordialog如果它失败然后只返回没有发出错误信号到该计划。 有任何想法吗?

在窗口应用程序中写入命令行

我正在尝试让我的基于WinForm的C#与命令行合作,但是我很难让它发挥得很好。 例如,我有这个代码: [STAThread] static void Main(string[] args) { foreach (string s in args) { System.Windows.Forms.MessageBox.Show(s); Console.WriteLine(“String: ” + s); } Mutex appSingleton = new System.Threading.Mutex(false, “WinSyncSingalInstanceMutx”); if (appSingleton.WaitOne(0, false)) { try { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); //start logger Logger.singleton.makeOpen(true); Application.Run(new MainForm(false)); } catch (Exception) { } finally { appSingleton.Close(); Logger.singleton.makeOpen(false); } } else { System.Windows.Forms.MessageBox.Show(“Sorry, only one […]

C#ListBox ObservableCollection

我正在尝试使用ListBox.DataSource = ObservableCollection,但是当我的OC更新时,我无法弄清楚如何让列表框自动更新。 我可以在OC上挂起CollectionChanged事件,但是我需要对列表框做什么才能使其更新?

HttpWebRequest将凭据传递给下一个HttpWebRequest

我正在使用HttpWebRequest登录页面并获取一些信息。 然后我使用该信息创建一个新的HttpWebRequest以获取更多信息。 我不想使用WebClient。 如何将使用第一个HttpWebRequest登录时获得的凭据传递给第二个? 编辑:如果我使用CookieCollection,那么这将是空的。 我只是尝试使用WebClient作为最后的手段,即使它没有工作,第二个请求将我带回登录屏幕。 我注意到在WebBrowser中有一个cookie。

从EF选择返回元组

如何使用EF4在Select中检索元组? var productCount = (from product in context.products select new Tuple(product, products.Orders.Count)); 要么 var productCount = (from product in context.products select Tuple.Create(product, products.Orders.Count)); entity framework说第一种情况不能使用空构造函数,而第二种情况则不能识别Tuple.Create方法。

如何在C#中更改文件创建时间?

我想知道如何在C#中更改文件创建时间?

如何在WCF服务和主机应用程序之间进行通信?

我通过本教程创建了一个WCF服务。 这很好用,没问题。 现在我在托管应用程序中托管服务。 但与此同时,我希望将客户端的输入用于主机应用程序中的服务。 我不需要客户端和服务之间的双工通信。 我只需要服务和主机通信之间的通信。 处理这个问题的最佳方法是什么?

我可以使用流来插入或更新SQL Server(C#)中的行吗?

假设我有一个VarBinary [MAX]列,我可以使用从System.IO.Stream派生的类型插入或更新到该列吗? 怎么样? 我认为我可以使用SqlDataReader从这样的列中获取只读流,在读取器上调用GetSqlBytes() ,获取SqlBytes实例,然后在其上引用Stream属性。 我想要的是反过来 – 我想要一个流更新或插入。 可能? (来自c#…没有编写T-SQL?) 编辑 我见过这样的代码: System.Data.SqlClient.SqlCommand _SqlCommand = new System.Data.SqlClient.SqlCommand(_SQL, _SqlConnection); // Convert image to memory stream System.IO.MemoryStream _MemoryStream = new System.IO.MemoryStream(); _Image.Save(_MemoryStream, _ImageFormat); // Add image as SQL parameter System.Data.SqlClient.SqlParameter _SqlParameter = new System.Data.SqlClient.SqlParameter(“@” + _ImageFieldName, SqlDbType.Image); _SqlParameter.Value = _MemoryStream.ToArray(); _SqlCommand.Parameters.Add(_SqlParameter); // Executes a Transact-SQL statement against […]

无法在生产ASP.net网站上加载文件或程序集Microsoft.SqlServer.SqlClrProvider,它在哪里?

在我的ASP.net站点上,我有一个对Microsoft.SQLserver.SMO的引用。 我将此引用复制到我的生产服务器上,并且无法加载Microsoft.SqlServer.Management.Sdk.Sfc错误。 通过从中复制dll来修复此错误 C:\Program files\Microsoft Sql Server\110\SDK\Assembilies 但是,我得到了相同的错误,但对于无法找到的Microsoft.SqlServer.SqlClrProvider 。 我在哪里可以找到SqlClrProvider dll? 它适用于我的localhost所以它必须在某个地方。