在C#中,如何确定元素的XSD定义的MaxLength

我正在使用带有附加XSD的XmlReader进行validation。 在读取和validation我的XML文档时,我想在我的C#代码中确定XSD中为特定元素指定的“maxLength”值。 例如,我的XSD片段非常简单地定义为: 我可以使用以下方法轻松获得’minOccurs’值: myReader.SchemaInfo.SchemaElement.MinOccurs; 但是如何获得’maxLength’值(我上面的示例片段中的值为10)??? 我认为’ myReader.SchemaInfo.SchemaElement.Constraints ‘可能会给我这个信息,但该集合的’Count’总是为零。 谢谢, 拍。

我什么时候应该使用公共/私有/静态方法?

我是C#的新手。到目前为止,我曾经做过每一个全局变量 – public static。我的所有方法都是public static,所以我可以从其他类中访问它们。 我在SO上看到,我拥有的公共静态方法越少越好。所以我通过将所有代码放在一个类中来重写我的应用程序 – 表单类。现在我的所有方法都是私有的,并且没有静态方法。 我的问题:在我看来,我应该做什么,保持表格类中的所有内容。 什么时候我应该使用公共,私有和静态私人/公共? 我认为公共方法是一种“缺点”,因为它们可以反编译,但我对此表示怀疑。我的公共方法也可以被反编译。私有方法中的“私有”是什么? 编辑 :我不是问如何阻止我的程序被反编译,我问我是否应该使用静态,私有和公共。还有:将所有代码放在表单类中是否有问题所以我没有使用公共方法?

从对象,entity framework自动创建数据库表

我正在尝试这个教程http://www.asp.net/mvc/tutorials/getting-started-with-aspnet-mvc3/getting-started-with-mvc3-part4-cs但不是使用紧凑版的SQL Server我在本地计算机上使用完整安装。 我阅读本教程的方式是entity framework假设从我定义的对象创建表。 我的问题是,当我运行项目时,我一直收到无效的对象名称dbo.movi​​es。 我终于通过自己创建表来运行它,所以我知道连接字符串,一切都是正确的。 我的问题是,是否可以从C#中创建的对象生成表格,如果是这样的话?

列出标志枚举中的所有位名称

我正在尝试创建一个帮助方法来列出Enum值中设置的所有位的名称(用于记录目的)。 我想要一个方法,它将返回一些变量中设置的所有枚举值的列表。 在我的例子中 [Flag] Enum HWResponse { None = 0x0, Ready = 0x1, Working = 0x2, Error = 0x80, } 我把它提供给0x81,它应该为我提供一个包含{Ready, Error}的IEnumerable 。 由于我没有找到更简单的方法,我尝试编写下面的代码,但我无法编译。 public static IEnumerable MaskToList(Enum mask) { if (typeof(T).IsSubclassOf(typeof(Enum)) == false) throw new ArgumentException(); List toreturn = new List(100); foreach(T curValueBit in Enum.GetValues(typeof (T)).Cast()) { Enum bit = ((Enum) curValueBit); // Here […]

如何根据字体颜色选择背景颜色以获得适当的对比度

我对颜色组成了解不多,所以我想出了这个算法,它会根据试验错误的字体颜色选择背景颜色: public class BackgroundFromForegroundColorConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { if (!(value is Color)) return value; Color color = (Color)value; if (color.R + color.G + color.B > 550) return new SolidColorBrush(Colors.Gray); else if (color.R + color.G + color.B > 400) return new SolidColorBrush(Colors.LightGray); else return new SolidColorBrush(Colors.White); […]

编写ASP.NET的月份和年份下拉列表的最佳方法是什么?

我有一个内部应用程序,我需要有两个日期类型元素的下拉列表: 月和年 。 这些值不在数据库或其他信息库中。 我知道我可以通过将它们添加到像对象这样的字典中来设置一个包含我需要的值的列表(我需要将Month与数值表示相关联,January => 01): var months = new Dictionary(); months.Add(“01”, “January”); … 今年的下拉列表将更容易,因为我可以选择一个起始年份并在通用列表中迭代到当前或当前+ 1年。 有没有更好的方法来处理这些数据元素? 内置的东西,或者我应该实现的良好设计模式?

Ninject默认的上下文绑定

我有一个具有几个不同具体实现的接口。 我试图给Ninject一个默认使用,如果名称匹配,只使用其他实现。 例如,我有以下绑定。 Bind().To() Bind().To().Named(“55abd8b8-097f-4e1c-8d32-95cc97910604”); 我想要的是,如果命名部分不匹配,使用DefaultSomething实现。 当我传入明确绑定的guid时,它工作正常。 当我传入任何其他guid时,我得到“没有匹配的绑定可用”exception。 Bind().To().Named(“55abd8b8-097f-4e1c-8d32-95cc97910604”); Bind().To() Bind().To() Bind().To().When(ctx => ctx.Service != null && ctx.Service.Name == “55abd8b8-097f-4e1c-8d32-95cc97910604”); 我也试过使用。当检查绑定时,我试图像下面那样颠倒顺序但是我永远无法绑定,除非我传入明确命名的Guid。 这篇文章似乎表明默认绑定有效,所以我一定做错了。 有什么建议? 编辑:这是一个完整的例子,显示我试图解决的问题。 所需的行为是针对kernel.Get(“Three”).Write()返回”Unknown Number” using System; using System.Collections.Generic; using System.Linq; using System.Text; using Ninject; namespace NinjectTest { interface INumber { string Write(); } class UnknownNumber : INumber { public string Write() { return […]

如何优化MySQL布尔全文搜索? (或者用什么来替换它?) – C#

我有一个包含大约22000行的表,我使用布尔全文搜索来找到我感兴趣的内容。我的问题是我创建了一个’动态搜索感觉’,它包含一个DataGridView ,它被刷新在每次TextChanged事件之后。 正如您可能已经想到的那样,在每个事件之后搜索插入的字符串需要花费大量时间。 我该怎么做才能提高搜索速度? 欢迎任何建议!

如何使用Microsoft.Office.Interop打开文件时禁用弹出窗口

如只读确认,其他警报。 这些弹出窗口怎么办? 还是忽略它们?

C#5中不提供“插值字符串”function。请使用语言版本6或更高版本

这里有一个类似的问题,但我认为这涉及不同的原因。 我把一个class级从一个较新的项目搬到了一个较旧的项目中。 两者都针对.net 4.6然而在移动后我收到了以下构建错误。 C#5中不提供“插值字符串”function。请使用语言版本6或更高版本。 我尝试将项目设置为在属性窗口中使用C#6进行构建而不做任何更改。