草庐IT

dynamic-method

全部标签

c# - 在C#中使用 'dynamic'实现访客模式

我有一个应用程序,我在其中对一系列元素执行操作,操作的确切性质取决于所操作元素的类型。由于封装的原因,不宜由元素来实现操作;这意味着它不能是元素类型的虚拟方法,因此“标准”多态性不起作用。我提出了previousquestion与此相关,并被告知这被称为访问者模式。我以前总是根据对象的类型使用if/elseif调度程序方法来实现它,然后调用适当的实现。然而,最近,我注意到使用dynamic关键字也可以完成同样的事情,如下所示:privatevoidReconcileTips(){foreach(varstepin_definition.Steps){ReconcileTips((dyn

c# - 通过安装程序设置模拟属性会导致 'Expression is not a method invocation'

我有下面的代码,其中我的Mock接口(interface)有一个Recorder属性,它是一个类。然后我尝试在该类上设置一个属性,但我得到了一个Expressionisnotamethodinvocation错误。你能帮忙吗?错误是在运行时尝试设置枚举属性时出现的。它会抛出一个带有以下堆栈跟踪的ArgumentException:atMoq.ExpressionExtensions.ToMethodCall(LambdaExpressionexpression)atMoq.Mock.c__DisplayClass1c`2.b__1b()atMoq.PexProtector.Invoke

c# - 在 Dynamic Linq Order By 上保留 NULL 行

我正在使用下面的代码片段来动态排序我的Linq查询并且效果很好。我不擅长反射或复杂的linq查询,但我需要一种方法,当使用升序时,NULL值在最后,反之亦然。因此,如果我的属性名称是一个整数并且列值是1、3、5,则默认情况下所有NULL行都将位于末尾,而不是开头。我可以向这个表达式添加什么来实现它?此代码适用于EntityFramework,但仍需要进行NULL比较。示例list.OrderBy("NAMEDESC").ToList()类publicstaticclassOrderByHelper{publicstaticIOrderedQueryableThenBy(thisIEnu

C# 错误 : The call is ambiguous between the following methods or properties. 运算符重载

我在名为Dinero的命名空间中有2个带有重载运算符的类,这些是2个类:第一个:namespaceDinero{classDollar{#regionAtributospublicDoublecant;#endregion#regionConstructorespublicDollar(){this.cant=0;}publicDollar(Doubleamount){this.cant=amount;}#endregion#regionSobrecargadeOperadorespublicstaticDollaroperator+(Euroeu,Dollardol){Dollard

c# - 如何: Use async methods with LINQ custom extension method

我有一个LINQ自定义扩展方法:publicstaticIEnumerableDistinctBy(thisIEnumerableitems,Funcproperty){returnitems.GroupBy(property).Select(x=>x.First());}我是这样使用它的:varspc=context.pcs.DistinctBy(w=>w.province).Select(w=>new{abc=w}).ToList();但问题是我不想要ToList()我想要这样的东西varspc=awaitcontext.pcs.DistinctBy(w=>w.province).

c# - 我可以在 .NET/C# 中为 Microsoft Dynamics AX 编码吗?

我是一名C#开发人员,想开始学习DynamicsAX。请指导我能否在DynamicsAX中使用我的.net/C#技能(API知识)?我知道AX是用X++开发的,但有人告诉我这是可能的。请指导我AX是否具有Web界面或只是一个桌面应用程序。 最佳答案 2011年8月,DynamicsAX2012发布。它现在支持.NET,因此您现在可以在VisualStudio和任何.NET语言中进行开发。阅读DynamicsAX团队的这篇博文以获取介绍:WelcometoVisualStudioand.NETdevelopercommunity这是来

c# - 生成动态方法来设置结构的字段而不是使用反射

假设我有以下代码更新struct的字段使用反射。由于结构实例被复制到DynamicUpdate方法,itneedstobeboxedtoanobjectbeforebeingpassed.structPerson{publicintid;}classTest{staticvoidMain(){objectperson=RuntimeHelpers.GetObjectValue(newPerson());DynamicUpdate(person);Console.WriteLine(((Person)person).id);//print10}privatestaticvoidDynam

c# - 错误 CS0051(不一致的可访问性 : parameter type 'Job' is less accessible than method 'AddJobs.TotalPay(Job)' )

我通过省略totalFee字段成功编译并运行了下面的源代码。如何将totalFee写入此程序,以便它准确计算每项工作的总费用(费率*时间)?下面,您会看到我尝试使用一种方法;这产生了错误CS0051(可访问性不一致:参数类型“Job”的可访问性低于方法“AddJobs.TotalPay(Job)”)。此源代码是对以下作业的响应:"DesignaJobclassforHarold’sHomeServices.Theclasscontainsfourdatafields—Jobdescription(forexample,“washwindows”),timeinhourstocomple

c# - 可访问性不一致 : return type is less accessible than method C#

好吧,这真的很奇怪。我有一个私有(private)成员,我想将它用于Form2。我创建了一个公共(public)静态方法,以便我可以将该成员放入Form2。这是我的代码:privatestaticAppControllerappController;privateBreadRepositorybreadRep;privateCakeRepositorycakeRep;privateSandwichRepositorysandwichRep;publicForm1(){InitializeComponent();breadRep=newBreadRepository();cakeRep=

c# - 当部分 View 位于共享文件夹中时,ASP.NET MVC '@model dynamic' 无法识别模型属性

不重复:MVCRazordynamicmodel,'object'doesnotcontaindefinitionfor'PropertyName'根据那里的答案,AccordingtoDavidEbbo,youcan'tpassananonymoustypeintoadynamically-typedviewbecausetheanonymoustypesarecompiledasinternal.SincetheCSHTMLviewiscompiledintoaseparateassembly,itcan'taccesstheanonymoustype'sproperties.为什