【c# – 用于使用起始值声明属性的简单语法】教程文章相关的互联网学习教程文章

c# – EF Core Backing字段 – 将属性公开为另一种类型?【代码】

假设我有一个EF实体类Person,上面有一个PhoneNumber. PhoneNumber存储为字符串类型,但我希望Person上的所有访问都通过Phone,它具有一些很好的访问器功能,例如验证或GetAreaCode().我想在数据库中将其作为字符串备份,但在查询它时我想将其作为PhoneNumber返回:public class Person {public PhoneNumber Phone { /* Some clever get/set logic here */ }private string _phoneNumber; // Backing field }或者我可以将PhoneNumber存储...

c# – “优雅”方法从对象列表中获取属性值列表的列表?【代码】

假设我有一个具有常用属性的Customer类:CustomerID,Name等. 作为查询的结果,我得到了Customer对象的通用列表:List< Customer> 是否有一种优雅的方法可以从此通用列表中获取CustomerID或Name属性值的数组/列表? (即string [] customerIDs = ????) 我知道我可以在循环期间做一个foreach并填充一个数组,但只是想知道是否有更优雅的方法通过LINQ扩展和/或lambda表达式来执行此操作. 谢谢.解决方法:如果您使用的是LINQ,则可以执行以下...

c# – 使用Reflection.Emit将自定义属性复制到另一个方法【代码】

我正在尝试基于现有接口生成一组新的wcf接口.我正在使用Reflection.Emit命名空间来完成此任务.我的问题是如何将旧的自定义属性从一个方法复制到新方法.我见过的每个SetCustomAttributes()示例都需要事先知道属性类型.我需要在运行时发现属性类型.有什么想法吗?解决方法:您(frjames)发布的答案很接近,但不考虑属性初始值设定项,如…[ServiceBehavior(Name="ServiceName")]但是,将CustomAttributeData转换为CustomAttributeBuilder以...

c# – 如何扩展asp.net User.Identity属性?【代码】

我不是在谈论asp.net会员资格. 对于每个记录的用户,我想从db中缓存一些属性,如状态或朋友请求的数量. 我可以创建自定义类,但我认为扩展现有的User.Identity属性会更好.像这样的东西:Label1.Text = User.Identity.Status;有可能的?解决方法:根据您的示例,我相信您应该在会话数据中缓存诸如状态和好友请求数之类的内容. 使用Identity进行此缓存的可能缺点是,如果我没有弄错,每个请求都会导致创建一个新的Identity实例.因此,对于每个...

c# – 在不触及课程的情况下添加属性? (不是继承)

我的项目中有一个要求是在某个类中添加另一个属性.现在我想避免更改类,因为我认为它不应该知道他有这个属性(这个属性只在这个项目的上下文中有意义). 我想要实现这个目标的方式是(请批评这个,因为我想知道是否有更简单的方法可以做到这一点) >添加一个新的单例类,它在我的类的对象和我想要添加的属性的类型之间有一个映射>在此类中添加一个扩展方法(扩展属性?)来访问映射并获取属性. 有更简单的替代方案吗?这只是不必要的复杂性吗...

两个对同一对象的引用的不同属性值(C#)【代码】

我试图在操作FlowDocument的应用程序中追踪一个非常难以捉摸的错误.我在下面连续三行显示调试代码及其输出:Debug.Assert(ReferenceEquals(document1, document2)); Debug.WriteLine(document1.Blocks.Count); // 1 Debug.WriteLine(document2.Blocks.Count); // 3任何人都可以帮助我理解对同一对象的两个引用如何对给定属性具有不同的值?或者我错过了ReferenceEquals的工作方式? 谢谢, 蒂姆 编辑: 如果我将断言更改为if块,则调...

c# – 为什么在UserControl中未正确更新Visible属性?

有时我的UserControl的Visible属性无法正确更新.它发生在我的应用程序启动时,在OnFontChanged中,从InitializeComponent内部触发,可能是因为尚未设置其他一些东西.我只是无法找出什么. vScrollBar是一个UserControl,位于另一个UserControl中.显然,只有在尝试将值设置为true时才会发生这种情况.vScrollBar已经创建了它的句柄,因为IsHandleCreated的监视说它是真的.解决方法:如果表单未加载,它仍可能显示为false.尝试在Form的OnLoad事...

c# – 使用属性名称调用属性或方法【代码】

假设我有一个看起来像这样的类:public class CallByAttribute {[CodeName("Foo")]public string MyProperty { get; set; }[CodeName("Bar")]public string MyMethod(int someParameter){return myDictionary[someParameter];} }如何使用CodeName而不是属性或方法名称来调用这两个属性或方法?解决方法:方法1:public static TOutput GetPropertyByCodeName<TOutput>(this object obj, string codeName) {var property = obj.GetTy...

c# – 如何从自定义属性获取属性的显示名称【代码】

我正在尝试创建一个最小长度验证属性,该属性将强制用户在文本框中输入指定的最小字符数public sealed class MinimumLengthAttribute : ValidationAttribute{public int MinLength { get; set; }public MinimumLengthAttribute(int minLength){MinLength = minLength;}public override bool IsValid(object value){if (value == null){return true;}string valueAsString = value as string;return (valueAsString != null && value...

c# – 无法使用值[MinimalLock]在对象[log4net.Appender.RollingFileAppender]上设置属性[lockingModel]【代码】

我在我的C#应用??程序中收到此错误.我使用log4net作为日志记录工具. 这是我的app.config文件:<configuration><configSections><section name="log4net" type ="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/></configSections><log4net><root><level value="ALL" /><appender-ref ref="myLogger" /></root><appender name="myLogger" type="log4net.Appender.RollingFileAppender,log4net"><param name="File" va...

c# – 实体框架中复杂类型属性名称的别名

我的DBA调用他的列名称与我们的代码使用表格数据的方式不同(例如描述与产品名称).我想知道我是否在实体框架中有一个复杂类型,是否可以为属性提供别名?解决方法:您可以根据需要为属性命名,只需将数据库字段映射到该属性即可.属性名称不依赖于相关数据库列的名称.

c# – 自动测试属性getter / setter【代码】

我们对域对象的许多属性使用支持字段,例如:protected string _firstname;public virtual string Firstname {get { return _firstname; }set { _firstname = value; } }我偶尔会像下面的例子那样制作愚蠢的拼写错误,并希望编写一个验证所有这些属性的测试,而不是手动对每个对象进行测试.public virtual string Firstname {get { return _firstname; }set { _firstname = Firstname; } }是否容易编写或者是否已经存在库以测试这些支...

c# – 如何按IEnumerable属性中的值进行分组【代码】

我有一个看起来像这样的课程public class TestCase {public IEnumerable<string> Categories { get; private set; } }我有一个TestCase对象列表,我希望能够按类别进行分组,这样如果一个TestCase在类别中具有值“a”和“b”,那么该测试用例的实例将在分组中“a”和“b”的分组.我对Linq的GroupBy的理解让我相信它会使用IEnumerable的Equals方法,如果我按类别分组,我会为每个测试用例得到一个完全不同的组. 我有一个蛮力解决方案,实现...

c# – 当使用AJAX UpdatePanel“回发”时,HiddenField Value属性返回空【代码】

我一直在处理这个问题几个小时,无法找到解决方案.现在我在Web应用程序中工作,我的第一个问题是我想动态创建XML …然后我意识到在回发之后,Xml正在重新发布.然后我只是说,“好吧,让我们创建一个HiddenField并将节点作为字符串存储在HiddenField值属性中,所以最后我只创建一个新的XmlElement,创建一个包含HiddenField.Value的InnerXml的文档片段并附加碎片到XmlElement“……但HiddenField.Value也重置每次点击一个按钮…我刚用标签和...

c# – 是否可以使用Moq设置没有setter的属性?【代码】

我做了一些研究.我想使用moq并将其传递给MVC控制器,以便允许它在会话中设置一些值.我写了一些代码,看看它是否有可能“打开”一个没有setter的属性.只是不知道它是否可能…… 以下代码是我试图设置一个没有setter的属性的尝试!using System; using System.Collections.Generic; using System.Linq; using System.Text; using Moq;namespace TestMoq {class Program{static void Main(string[] args){var mock = new Mock<TestClass...