Tag: .net 3.5

是否可以将项目从Enum加载到.NET 3.5中的ComboBox?

是否可以将项目从Enum加载到.NET 3.5中的ComboBox?

使用XmlSerializer进行自定义序列化

我有一个类,我需要从中做一些自定义XML输出,因此我实现了IXmlSerializable接口。 但是,我希望使用默认序列化输出的某些字段,但我想更改xml标记名称。 当我调用serializer.Serialize时,我在XML中获得默认标记名称。 我能以某种方式改变这些吗? 这是我的代码: public class myClass: IXmlSerializable { //Some fields here that I do the custom serializing on … // These fields I want the default serialization on except for tag names public string[] BatchId { get; set; } … … ReadXml and GetSchema methods are here … public void WriteXml(XmlWriter writer) { […]

处理单例实例(C#)

如果单例实现IDisposable,那么处理和重新创建实例的正确方法是什么? 一种方法是保持_disposed标志并在Instance属性中检查它,但我不确定这是否是正确的方法。 一个简单的例子: public sealed class Singleton: IDisposable { private static Singleton _instance; private object _lock; private UnmanagedResource _unmanaged; private bool _disposed; private Singleton() { _unmanaged = new UnmanagedResource(); _disposed = false; _lock = new object(); } public UnmanagedResource Unmanaged { get { return _unmanaged; } } public static Singleton Instance { get { if […]

在标签上添加新行

我从数据库中获取数据并在标签上显示该数据。 我必须在每35个字符的标签文本上应用新行。 因为在35个字符之后文本溢出。 你能告诉我怎么做吗?

扩展基本类型并自动更新实体的审核信息

我有一个实体模型,每个表都有审计信息(50多个表) CreateDate CreateUser UpdateDate UpdateUser 目前,我们以编程方式更新审计信息。 例如: if(changed){ entity.UpdatedOn = DateTime.Now; entity.UpdatedBy = Environment.UserName; context.SaveChanges(); } 但我正在寻找一种更自动化的解决方案。 在保存更改期间,如果创建/更新实体,我希望在将这些字段发送到数据库进行存储之前自动更新这些字段。 有关如何做到这一点的任何建议? 我宁愿不做任何反思,所以使用文本模板并非不可能。 已经提出了一种解决方案来覆盖SaveChanges并在那里进行,但是为了实现这一点,我要么必须使用reflection(我不想做)或者派生基类。 假设我沿着这条路走下去,我将如何实现这一目标? 例如 EXAMPLE_DB_TABLE CODE NAME –Audit Tables CREATE_DATE CREATE_USER UPDATE_DATE UPDATE_USER 如果我创建一个基类 public abstract class IUpdatable{ public virtual DateTime CreateDate {set;} public virtual string CreateUser { set;} public virtual DateTime UpdateDate { set;} public […]

如何将文件上载到IIS中托管的.NET 3.5 WCF服务?

我已经把头发拉了一段时间了。 有人可以提供一个非常简单的示例(或工作示例的链接),说明如何将文件上载到IIS中托管的WCF服务。 我从简单的事情开始。 我想通过POST从客户端调用URL,传递文件名并发送文件。 所以我在合同中添加了以下内容: [OperationContract] [WebInvoke(Method = “POST”, UriTemplate = “/UploadFile?fileName={fileName}”)] void Upload(string fileName, Stream stream); 在.svc文件中实现它: public void Upload(string fileName, Stream stream) { Debug.WriteLine((fileName)); } 我立即在运行项目时遇到错误: For request in operation Upload to be a stream the operation must have a single parameter whose type is Stream. 不知道从哪里开始。 很想看到一个真实的工作示例。 PS我在.NET 4中用WCF 4做了这个,它看起来简单得多,但我不得不降级。 在.NET 3.5中,我遗漏了一些东西。

如何在C#中使用SevenZipSharp / Unrar知道哪个rar在多rar档案中是第一个?

我试图在C#WinForms .NET 3.5中使用SevenZipSharp或/和Unrar库。 我有多个rar档案有这个问题,例如有不同的命名: .rar,r01,r02,r03等(这很容易) somefile01.rar,somefile02.rar,somefile03.rar .001,.002,003等。 如果我将Unrar或SevenZipSharp指向错误的存档,它将解压缩该特定存档并将其余部分解压缩。 所以我必须指出正确的一个(除非我做错了什么)。 检查的最佳方法是什么? 现在我正在检查目录中是否有多个.rar文件然后如果是这样我检查01.rar。 如果只有一个和.rar和几个r01然后我得到.rar但这似乎有点不对。 有没有办法让SevenZip或Unrar通过指向任何.rar文件实际解压整个多rar包? 或.001? 疯狂的男孩 编辑: 我尝试使用以下代码来获取一个答案中建议的信息,但它无法提供承诺的信息。 extr.ArchiveFileData为zip返回0,为任何提供的rar返回32,无论是rar还是r01。 using (SevenZipExtractor extr = new SevenZipExtractor(fileName)) { foreach (var var in extr.ArchiveProperties) { string attributes = var.Name; object test = var.Value; if (test == null) { test = “THIS”; } MessageBox.Show(attributes.ToString(), test.ToString()); } foreach (var var in […]

使LinqToSQL与数据库保持同步

我将使用asp.net 3.5和LinqToSQL开发一个新网站。 出于可维护性的目的,如果将属性添加到数据库中的表中,如何修改Linq类? 谢谢。

调试使用Vista API中的FileDialog的Visual Studio 2010解决方案时出现问题

我有一个WinForms C#Visual Studio 2008(.NET 3.5)解决方案,将升级到Visual Studio 2010(.NET保持在3.5版本)。 此解决方案使用Vista API中的FileDialog有两个原因: 在Windows XP中运行应用程序时,期望为用户提供Windows XP外观文件对话框。 在Windows Vista和7中运行相同的应用程序时,文件对话框将具有Vista外观。 更重要的是,我们的应用程序允许用户打开项目文件,该文件可以是本地文件(存储在用户的计算机上或USB设备上),也可以是服务器项目(托管在MS SQL Server中)。 为此,我们使用Vista API,因为我们可以访问文件类型下拉列表控件的事件处理程序。 因此,实现是这样的,向用户呈现打开文件对话框,当他们从文件类型下拉列表中选择“服务器”选项时,打开文件对话框关闭,并打开另一个对话框,允许用户选择他们希望连接的服务器和服务器项目。 在Visual Studio 2008中调试应用程序时,Vista API没有问题。 当解决方案升级到Visual Studio 2010(在Windows 7中运行)时,用户尝试调试应用程序,并且用户希望访问Vista API打开文件对话框,应用程序崩溃并抛出ArgumentException,并显示以下消息: “价值不在预期范围内”。 当用户在没有调试(Ctrl + F5)的情况下从Visual Studio 2010运行解决方案时,没有exception发生。 “违规”代码是: internal void DoFolderChange(IFileDialog dialog) { IShellItem ppsi = null; string ppszName = string.Empty; dialog.GetFolder(out ppsi); // Exception occurs here […]

按一些标准从集合中选择最大项目

我是.net 3.5的新手。 我有一个项目集合: IList models; 哪里 class Model { public string Name { get; private set; } } 我想得到名称长度最长的元素。 我试过了 string maxItem = models.Max(model => model.Name.Length); 但它当然会返回最大长度(我需要一个Model对象)。 我知道有一种方法可以使用扩展方法,但我不知道如何。