草庐IT

dynamic-properties

全部标签

c# - "dynamic"类型能否在通用集合 <dynamic> 中安全变化?

基于我对thisquestion的回答,我想检查一下我对即将推出的C#4dynamic类型的理解。在这种情况下,我们有一个集合表示从未知数据库表中提取的记录中的字段。较旧的代码(.Net4之前的版本)需要此类集合保存类型为Object的项目。除了这样一个集合的优点,我想知道当您将Object更改为dynamic时会发生什么。一方面,我希望由于动态类型的事情都是在运行时解决的,所以只要程序员没有对特定项目的预期类型进行任何拼写错误或错误,一切都应该很好集合。另一方面,我对上一句中的“所有”这个词感到疑惑。运行时是否可能缓存第一次访问动态属性的结果,导致使用不同类型的后续调用失败?

c# - 如何在 Property Trigger 触发时设置 viewmodel 属性

我有一个带有View模型的ListView。ItemsSource是View模型中对象的集合。某些标志IsFlagOn的View模型上存在一个属性。当ListViewItem检测到IsMouseOver时,我想将View模型中的该属性设置为True。然后将其他UI元素绑定(bind)到同一属性,以便在切换MouseOver时View发生变化。我如何在XAML中完成此操作?我会想象这样的事情(但这会中断):更新:错误是CannotresolvetheStyleProperty'IsFlagOn'.VerifythattheowningtypeistheStyle'sTargetType,

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# - .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# - 如何使用 Dynamic LINQ 使用 GroupBy

我正在尝试使用DynamicLINQ执行GroupBy,但无法使其正常工作。这是一些说明问题的示例代码:ListlistAlbums=newList();for(inti=0;imydata=listAlbums.AsQueryable();intcount=mydata.Count();//varmydataGrouped=mydata.GroupBy(a=>a.Shop);//我意识到我在GroupBy重载中遗漏了“elementSelector”,但我想做的就是最终得到(在这种情况下)两组dtoMyAlbum对象,所以我希望为所有集合选择所有元素。.我该怎么做?

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;谢谢! 最佳答案 默认情况下,控制台应用程序中没有设置文件。但是,您只需在解决方案资源管理器中右键单击您的项目,选择“属性”,然后在出现的窗口中单击“设置”选项卡,即可添加一个。应该有一个链接,上面写着“单击此处创建默认设置文件