草庐IT

property-getter

全部标签

c# - ASP.NET 用户控件 : Page_Load fires before property is set

这让我发疯。我有一个非常简单的用户控件:publicint?ImageId{set;get;}protectedvoidPage_Load(objectsender,EventArgse){...dosomethingwithImageId...}然后我将此控件放在UpdatePanel中带有ListView的页面上:'ID="cipPreview"runat="server"/>问题是Page_Load在ASP.NET设置ImageId之前触发。在调试器的帮助下,我发现由于某种原因,MyControl中的ImageId已设置,但它仅在Page_Load完成处理后才会发生。怎么了?

c# - Settings.Default.<property> 始终返回默认值而不是持久存储(XML 文件)中的值

我最近用C#(.Net2.0)编写了一个DLL,其中包含一个需要IP地址的类。我的一位同事更改了类以从“.dll.config”(XML)文件中检索IP——这显然是由他创建的“应用程序设置”文件(Settings1.settings)自动生成的。这样做的好处是允许最终用户随意更改XML/config文件中的IP地址。不幸的是,当我从树中checkout他的代码并尝试编译(或使用)这个新代码时,任何调用这个DLL的应用程序只获得默认值,而不是文件中的值。调用配置文件的构造函数如下所示:publicclassform:System.Windows.Forms.Form{publicform

c# - EntityFramework Code First 对属性 getter/setter 做了什么?

在使用CodeFirst时,EntityFramework究竟做了什么来映射具有自定义getter和setter的属性?它是否只是在序列化时调用属性的getter,反序列化时调用setter?所以我可以做一些愚蠢的事...publicclassFoo{publicDateTimeTimeAccessed{get{returnDateTime.Now;}set{TimeDeserialized=DateTime.Now;}}[NotMapped]publicDateTimeTimeDeserialized{get;privateset;}}注意我对使用上面的代码或任何类似的代码没有实际兴

c# - .Net 4 : How to reference a dynamic object with property named "return"

我正在从公共(public)api检索json并使用JsonFx将其转换为动态对象。JsonFx.Json.JsonReaderreader=newJsonFx.Json.JsonReader();dynamicresponse=reader.Read(jsonAsString);json包含一个名为return的属性。例如{"result":"success","return":{"high":{"value":"3.85001","value_int":"385001","display":"3.85001\u00a0\u20ac","currency":"EUR"}}JsonFx

c# - EF lambda : The Include path expression must refer to a navigation property

这个问题在这里已经有了答案:EF:Includewithwhereclause[duplicate](5个答案)关闭5年前。这是我的表达:Coursecourse=db.Courses.Include(i=>i.Modules.Where(m=>m.IsDeleted==false).Select(s=>s.Chapters.Where(c=>c.IsDeleted==false))).Include(i=>i.Lab).Single(x=>x.Id==id);我知道原因是模块部分的Where(m=>m.IsDeleted==false),但为什么会导致错误?更重要的是,我该如何修复它

c# - 为什么 Property 执行比 Field 或 Method 执行慢?

在CLRviaCSharp第10章“属性”JeffRichter写道:Apropertymethodcantakealongtimetoexecute;fieldaccessalwayscompletesimmediately.Acommonreasontousepropertiesistoperformthreadsynchroni-zation,whichcanstopthethreadforever,andtherefore,apropertyshouldnotbeusedifthreadsynchronizationisrequired.Inthatsituation,ameth

c# - 为 getter 和 setter 使用支持变量

也许这是一个愚蠢的问题,但是,我是C#的新手(更多来自Java背景)并且对我看到的关于属性的getter和setter的不同示例感到困惑。在某些情况下,代码如下所示:privatestring_something;publicstringSomething{get{return_something;}set{_something=value;}}然而,在其他示例中,他们不使用此支持成员,因此更像是这样:publicstringSomething{get;set;}我没有真正看到使用这些支持变量(_something)的好处,除非您当然有一些关于变量设置的复杂逻辑。我正在使用后一种方法编

C#6 : nameof() current property in getter/setter

有没有办法在getter/setter中获取当前属性的名称?像这样:publicstringMyProperty{get{returnbase.Get(nameof(ThisProperty));}set{base.Set(nameof(ThisProperty),value);}}nameof(ThisProperty)应该解析为“MyProperty”。 最佳答案 nameof无法做到这一点,但有更好的方法(自C#5起可用)。您可以使propertyName参数可选,并将CallerMemberName属性应用于它:protec

c# - 如何从控制台应用程序中访问 Properties 命名空间?

我正在尝试存储/检索存储在应用程序设置中的值。在我的控制台应用程序中,我似乎无法访问Properties.Setting命名空间。我的网上冲浪表明,在控制台应用程序中执行此操作可能需要做更多的工作。如何做到这一点?stringtest=Properties.Settings.Default.MyString;谢谢! 最佳答案 默认情况下,控制台应用程序中没有设置文件。但是,您只需在解决方案资源管理器中右键单击您的项目,选择“属性”,然后在出现的窗口中单击“设置”选项卡,即可添加一个。应该有一个链接,上面写着“单击此处创建默认设置文件

c# - 系统.Runtime.Serialization.InvalidDataContractException : No set method for property

如错误所示,我的属性没有setter,但我不想要setter,它应该是只读的。 最佳答案 已编辑:使二传手成为内部。这仍然可以在程序集中设置,但这是一个很好的技巧,当用于位于其他人使用的程序集中的数据对象时效果很好,因为那些使用程序集的人将无法设置该属性,但是各种序列化程序都可以。 关于c#-系统.Runtime.Serialization.InvalidDataContractException:Nosetmethodforproperty,我们在StackOverflow上找到一个类