Tag: .net

序列化没有引号的int类型

我有以下类来序列化: [Serializable] public class LabelRectangle { [XmlAttribute] public int X { get; set; } [XmlAttribute] public int Y { get; set; } [XmlAttribute] public int Width { get; set; } [XmlAttribute] public int Height { get; set; } } 它将被序列化,看起来像这样 但我想得到以下结果: 这是序列化没有引号的int类型值。 有可能,如果是的话?

Visual Studio 2010:如何引用具有第三方依赖性的C#.Net类库项目

这可能是一个非常基本的问题,但我没有找到有关项目引用如何在Visual Studio中工作的任何详细信息。 我有一个Visual Studio 2010 C#解决方案,其中包含一个MainApp项目和一个内部带有第三方程序集的C#类库项目。 当从MainApp项目引用类库项目时,我应该只添加项目引用还是需要在类库项目中添加对第三方程序集的引用? 在某些情况下,如果我在MainApp项目中只有类库项目引用,似乎第三方程序集未正确加载,尽管在构建完整解决方案时所有DLL文件(包括第三方DLL)都显示在输出文件夹中。 编辑:我发布了一个更具体的问题,因为一般的答案在我的案例中没有帮助: 如何使用IronPython引用自包含的C#类库项目(Visual Studio 2010)

使用async / await将现有C#同步方法转换为异步?

从同步I / O绑定方法开始(如下所示),如何使用async / await使其异步? public int Iobound(SqlConnection conn, SqlTransaction tran) { // this stored procedure takes a few seconds to complete SqlCommand cmd = new SqlCommand(“MyIoboundStoredProc”, conn, tran); cmd.CommandType = CommandType.StoredProcedure; SqlParameter returnValue = cmd.Parameters.Add(“ReturnValue”, SqlDbType.Int); returnValue.Direction = ParameterDirection.ReturnValue; cmd.ExecuteNonQuery(); return (int)returnValue.Value; } MSDN示例都假设存在* Async方法,并且没有为I / O绑定操作自己创建一个指导。 我可以使用Task.Run()并在该新任务中执行Iobound(),但不鼓励创建新任务,因为该操作不受CPU限制。 我想使用async / await,但我仍然坚持这个如何继续转换此方法的基本问题。

IEnumerable ,Arity和Generic Type Definitions

我有一个class级计数器 ,用钥匙计算东西。 简化: public class Counter { private Dictionary counts; public void Increment(T key) { int current; bool exists = counts.TryGetValue(key, out current); if (exists) { counts[key]++; } else { counts[key] = 1; } } } 它还有许多其他专门针对我需求的东西,但这才是最重要的。 到目前为止,它的效果很好。 现在我想让它在Linq查询中使用(包含键和值)。 做到这一点,我认为我需要实施 IEnumerable 所以我补充说: public class Counter : IEnumerable<KeyValuePair> { // … IEnumerator<KeyValuePair> IEnumerable<KeyValuePair>.GetEnumerator() { return ((IEnumerable<KeyValuePair>)counts).GetEnumerator(); […]

是否有更简单的方法将一组变量作为数组传递

我想要做的是为我的StreamWriter实例编写一个专用方法,而不是在程序中的随机点上使用它。 这会对调用类的位置进行本地化,因为当前的方法存在一些错误。 这就是我现在所拥有的: public static void Write(string[] stringsToWrite) { writer = new StreamWriter(stream); writer.Write(“hello”); foreach (string stringToWrite in stringsToWrite) { writer.Write(” ” + stringToWrite + ” “); } writer.Flush(); } 注意:stream是TcpClient的一个实例 有了这个我能够传递一个变量数组来写,但我不能使用与现有方法相同的方法调用: writer.WriteLine(“hello {0} {1} {2}”, variable1, variable2, variable 3); writer.Flush(); 如果我能够将x个变量传递给方法并且循环以这种方式编写每个变量,那将是很好的,但.NET中的可选参数直到v4.0仍然处于测试阶段才会到达。 有任何想法吗?

无法从NHibernate.Driver.OracleDataClientDriver创建驱动程序(将copy local设置为true)

我甚至在app.config中添加了这个小配置: ……没有成功 可能有什么不对? 另外,为了确保我的app.config是风水,这里是: true NHibernate.Dialect.Oracle10gDialect NHibernate.Driver.OracleDataClientDriver GuitarStore2 NHibernate.Connection.DriverConnectionProvider 为了记录,我在Windows 7 64位下使用最新的Nhibernate(3.3.1),在.NET 3.5上。 并且,对于完全相同的项目,我在另一台机器上遇到没有例外,但是在Windows XP中。

如何强制重新加载NLog配置文件?

我正在使用NLog配置文件。 为了避免为长时间的治疗记录过多的东西,我正在做这样的事情: foreach (LoggingRule rule in LogManager.Configuration.LoggingRules) { rule.DisableLoggingForLevel(LogLevel.Trace); rule.DisableLoggingForLevel(LogLevel.Debug); } LogManager.ReconfigExistingLoggers(); 它允许我暂时降低日志记录详细信息级别。 上面的几行只是一个例子来说明。 这似乎完美无缺。 之后,我想恢复我的“常规”日志记录配置,只需重新加载已在程序启动时自动加载的NLog.Config文件 。 我试过了 : LogManager.Configuration.Reload(); LogManager.ReconfigExistingLoggers(); 我认为这很容易但配置.Reload没有做我期待的事情,我没有找到任何其他合适的方法。 在调用之后,我的记录器在程序启动时仍然没有存储跟踪和调试事件。 所以我的问题是:如何以编程方式强制在运行时重新加载NLog.config并恢复我的“标准”记录器设置? 谢谢 有关详细信息的问题更新: 我正在使用VS2013,.Net 4 projet和NLog 4.4.0-beta11(beta但是最后一个在nuget上),简单的“文件”目标在配置文件中定义,minLevel = Trace和autoReload = True Logger在类级别实例化:private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); 这是我的测试证据: Assert.True(Logger.IsTraceEnabled); Assert.True(Logger.IsDebugEnabled); Logger.Trace(“1 – This should appear in log”); Logger.Debug(“2 – This should […]

迭代通过站点相对路径查找文件(ASP.NET MVC 3)

我的Web应用程序(ASP.NET MVC 3)中有一个文件夹,其中包含一组图像。 我想使用foreach循环迭代文件夹以获取站点相对路径,然后我可以将其附加到图像标记。 例 @foreach(string file in ?????) { } 我该怎么做呢? 注意:我当前的foreach循环试图查看物理路径并返回此错误 Could not find a part of the path ‘C:\Content\Images\Photography\Slides\’.

删除Tab-whitespace?

我在C#中遇到了一个相当奇怪的问题,即删除空格。 我当前的代码如下所示: string s = “This is a string without spaces”; s = s.Replace(” “, string.Empty); 在此示例中,结尾处的最后一个空格,在“不”之后是缩进(Tab),而不是实际的空格键空格。 显然String.Replace不关心它,所以它忽略它,并留下那里的空白。 有可能避免这个问题吗?

强制执行必须在*不同*字段中的每个子类实现的属性的最佳方法是什么?

我试图提出实现SQL数据服务灵活实体模型的“最佳”方法,其中每个类都可以存储为实体,甚至是实体类。 示例:每个子类都有不同 string Id string Kind Dictionary Properties 到目前为止,我正朝着同时拥有一个Entity类(上面的)和一个类似于某种集合的基类的方向前进 Dictionary data 并让每个子类添加到该字典,只需获取/设置属性 data[“EntityKind”].Properties[“PropertyName”] 但是,由于每个类只有一个实体,看起来我应该使用某种Stack(intead of Dictionary),其中层次结构的每个级别都知道它的确切位置。 然后我发现类inheritance就是堆栈,所以我想也许我只是错过了一些真正简化所有这一切的OO概念。 就像是 abstract eachsubclassmusthaveitsown Entity entity