应用程序域用于什么?

我大致了解AppDomain是什么,但是我并不完全理解AppDomain的用途。 我参与了一个基于服务器的大型C#/ C ++应用程序,我想知道如何使用AppDomains来提高稳定性/安全性/性能。 特别是: 我理解一个域中的错误或致命exception不会影响在同一进程中运行的其他应用程序域 – 这是否也适用于非托管/ C ++exception,甚至可能是堆损坏或其他内存问题。 AppDomain间通信如何工作? 如何使用AppDomains与简单地生成许多进程有什么不同?

字符串对象真的是通过引用?

我正在学习(新手).NET,我有些疑惑。 从书中读到的例子我了解到String是对象,然后是Reference Type。 所以,我做了这个测试,结果与我的预期不同: 我真的很好奇,这是一个例外,因为“字符串”是特殊类型吗? class Program { static void Main(string[] args) { SByte a = 0; Byte b = 0; Int16 c = 0; Int32 d = 0; Int64 e = 0; string s = “”; Exception ex = new Exception(); object[] types = { a, b, c, d, e, s, ex }; // […]

在开源应用程序中存储已保存的密码

我正在编写一个开源的C#应用​​程序,我需要能够为每个用户存储已保存的登录信息。 通常我只会加密密码,然后将其存储在用户设置文件中,但我担心由于代码是开源的,它有点无法加密它。 因为所有人都要做的就是查看代码并获取加密密钥。 当然,它至少会比以纯文本存储的密码更难。 但是有没有像加密密码的好方法,但即使你有源代码,它至少仍然非常难以解密? 也许这样做至少几乎不可能在除了加密的计算机之外的任何计算机上解密? 编辑:澄清……我正在存储客户端密码,而不是密码来validation他们的服务登录。 它是我无法控制的预先存在的Web服务的客户端。 我只是想在本地存储密码以便自动登录…就像任何聊天客户端一样。 编辑2:完全对不起之前不清楚。 但是密码必须在某些时候以明文检索并且哈希不是一个选项:(即使服务会让我传递密码哈希,这有点打败了目的,因为哈希会像密码一样好:P

如何在C#中创建一个1维数组,索引从1开始

对于多维数组,Array.CreateInstance可用于创建基于非零索引的数组,但如果您尝试使用1维数组(向量),例如: public double[] myArray = (double[])Array.CreateInstance(typeof(double), new int[1] { 12 }, new int[1] { 1 }); 当从多维数组转换为单维数组失败时,这将在运行时失败 “Unable to cast object of type ‘System.Double[*]’ to type ‘System.Double[]'” 现在我可以创建一个基于零的数组并忽略第一个值,或者使用偏移等,但我是否忽略了一些允许基于非零的向量的c#语法魔法? 更新: 如果他说“ 没有明显的方法可以在C#中创建一个非零的数组”,我会接受Eric Lippert的话。

与OleDB连接的entity framework – 我只是简单的坚果?

我正在尝试entity framework,我想连接到Access 2007数据库。 以下代码的灵感来自http://msdn.microsoft.com/en-us/library/system.data.entityclient.entityconnection.connectionstring.aspx 我怀疑我的错误结束了…… OleDbConnectionStringBuilder oledbConn = new OleDbConnectionStringBuilder(); oledbConn.DataSource = @”..\..\..\..\Pruebas.accdb”; //yep Access 2007! EntityConnectionStringBuilder entityBuilder = new EntityConnectionStringBuilder (); entityBuilder.Provider = “Microsoft.ACE.OLEDB.12.0”; entityBuilder.ConnectionString = oledbConn.ToString(); EntityConnection ec = new EntityConnection(entityBuilder.ToString()); ec.Open(); ec.Close(); EntityConnectionStringBuilder告诉我它不支持DataSource属性。 我可以很好地与ADO.net连接,所以我知道路径和提供商是正确的。 这只是完全错误的做法吗?

当绑定属性强制执行某些业务规则时,绑定的WPF TextBox不会更新值

我使用的是.NET 4.0。 我有一些非常简单的代码,允许用户输入1到99,999(含)之间的数字。 我在Property setter中有一些逻辑,如果它不遵守业务规则(例如,它不是数字或数字太大),则会阻止应用最新值。 public class MainViewModel : INotifyPropertyChanged { #region Fields private string _text = string.Empty; #endregion // Fields #region Properties public string Text { get { return _text; } set { if (_text == value) return; if (IsValidRange(value)) { _text = value; } OnPropertyChanged(“Text”); } } #endregion // Properties #region Private Methods […]

从服务获取登录的用户名

我有一项服务,我必须登录到本地管理员进行安装。 当用户登录或注销以记录其用户名时,此服务的目的是记录。 我终于找到了一些我认为可以工作的WMI代码,但它仍然是返回管理员。 为什么这不起作用? var query = new ObjectQuery(“SELECT * FROM Win32_Process WHERE Name = ‘explorer.exe'”); var explorerProcesses = new ManagementObjectSearcher(query).Get(); foreach (ManagementObject mo in explorerProcesses) { string[] ownerInfo = new string[2]; mo.InvokeMethod(“GetOwner”, (object[])ownerInfo); userName = String.Concat(ownerInfo[1], @”\”, ownerInfo[0]); } Console.WriteLine(userName); Console.ReadLine(); 为了澄清我的问题,我想要获得当前登录的用户,但它给了我Adminstrator我用来安装服务的帐户。

使用iTextsharp将PDF拆分为多个PDF

public int SplitAndSave(string inputPath, string outputPath) { FileInfo file = new FileInfo(inputPath); string name = file.Name.Substring(0, file.Name.LastIndexOf(“.”)); using (PdfReader reader = new PdfReader(inputPath)) { for (int pagenumber = 1; pagenumber <= reader.NumberOfPages; pagenumber++) { string filename = pagenumber.ToString() + ".pdf"; Document document = new Document(); PdfCopy copy = new PdfCopy(document, new FileStream(outputPath + "\\" + […]

C#如何在app.config文件中指定appData文件路径

我正在使用log4net,我将日志文件保存在AppData文件中,用于win XP / Vista等。 这是我的app.config文件到目前为止,我已经指定了名称softphone.log。 Hoewver,我不知道如何指定文件的完整路径,因为每个用户将根据其用户名使用不同的路径。 在我的源代码中,我可以通过执行以下操作获取路径: System.Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) 但是,我不能在我的app.config中使用上面的内容,如果我在我的系统上硬编码路径,路径将是: C:\Documents and Settings\John\Application Data 但是,这对每个客户来说都是不同的。 那么有没有办法为app.config文件执行此操作? 非常感谢任何建议,

使用OpenXML在Word中获取CheckBox

如何使用OpenXML获取嵌入在Word文档中的CheckBox控件的句柄? 您会认为Paragraph.ControlPropertiesPart或Paragraph.Descendents()会实现某些function,但在每种情况下我都会返回null类型。 我可以使用实际的XML结构遍历文档树,但这看起来很麻烦。 建议欢迎。