Tag: dynamic

与IIS 7.5结合使用的动态语言运行库中的错误

我为这个问题长度道歉,但我认为你们都觉得值得。 在开始之前,让我说我真的想要生成一个孤立的控制台应用程序,但遗憾的是,事实certificate这是不可能的。 该错误不会发生在控制台应用程序中。 它不会发生在自包含的ASP.NET应用程序中。 它仅在Windows 7上的IIS 7.5中运行时发生。 该错误似乎与动态语言运行时有关,因为它涉及__TransparentProxy (通过WCF)和dynamic变量(int)的组合。 产生问题的那一行是调用一个传递代理和动态int的静态方法(碰巧不包含方法体)。 调用该方法后,w3wp.exe进程会占用整个CPU并开始非常快速地增加内存(对我来说,每秒大约100兆,尽管它可能因为GC而逐渐减少)。 若要重现此错误,请在Visual Studio中创建一个新的ASP.NET网站(“新建”|“项目”“C#”|“Web”|“ASP.NET Web应用程序”)。 然后在IIS中创建一个新站点,其主目录是您的新项目。 (另外,为每个人提供对该文件夹的完全读/写访问权限并确保应用程序池使用.NET 4.0)为新站点提供特定端口,如7080.最后,将此代码粘贴到Global.asax.cs中: public class Global : System.Web.HttpApplication { void Application_Start(object sender, EventArgs e) { dynamic dynamicId = 5; var serviceUrl = “http://localhost:7182/FooServices.svc”; ChannelFactory factory = new ChannelFactory(new WSHttpBinding(), new EndpointAddress(serviceUrl)); factory.Open(); IFooServices fooServices = ((ChannelFactory)factory).CreateChannel(); BlowUpTheProgram(fooServices, dynamicId); // This line […]

是否可以查询ExpandoObject列表?

我想知道是否可以使用常规LINQ查询ExpandoObject? 原因是我有动态ExpandoObject但我需要先进行一些查询才能进一步传递。 它有一些属性,总是保持例如Id , Notes但也有一些我无法控制的动态属性。 这是我的列表看起来像 [ { “Id”: 1, “FileId”: 1, “Notes”: “”, “1”: “12.02.1991” }, { “Id”: 2, “FileId”: 2, “Notes”: “”, “1”: “12.02.1991” } ] 码 正如您所看到的,我有静态项目,然后确保每个项目动态键都成为该项目属性。 在这个例子中, 1是关键, 12.02.1991是值 var generatedItems = new List(); foreach (var item in items) { var modifiedItem = new List<KeyValuePair> { new KeyValuePair(“Id”, item.Id), new KeyValuePair(“FileId”, […]

c#4中的DLR和Javascript解释?

我想使用DLR从c#执行javascript代码。 所以我用c#和Jint编写了一个简单的代码: var script = @” function show( ) { return parseInt(‘123asd’); //in js it’s 123 }; return show();”; var result = new JintEngine().Run(script); Console.WriteLine(result); javascript中的parseInt(‘123asd’)是: 123 但我得到的结果是: 也许我看不到全貌,但如果世界另一端的程序员发给我他的脚本文件,我(和他)期望结果是一致的! 如果我弄错了,在什么情况下我会在.Net上运行其他代码? (我必须对每一行代码都 非常怀疑 ……)

是否可以使用.NET动态对象动态创建属性?

我正在尝试在我的MVC应用程序中创建一些Json,我只想包含源对象中的属性,如果它有一些属性值,则设置。 例如。 public class Foo { public string Aaaa { get; set; } public string Bbbb { get; set; } public int? Ccccc { get; set; } public Lol Dddd { get; set; } } // Example Outputs. Aaaa和Ccccc只有值: return Json(new { Aaaa = source.Aaaa, Cccc = source.Ccccc.Value }; Dddd只被设定了。 return Json(new { Dddd = […]

如何测试typeof(动态)?

我有一个generics方法TResult Foo(IEnumerable source)如果TResult被声明为dynamic我想要执行与其他类型声明不同的代码路径。 对于常规类型,您可以执行以下操作: if (typeof(TResult) == typeof(int)) return ExpressionFactory.CreateExpandoFunction(); 但是if (typeof(TResult) == typeof(dynamic))不能编译。 无论如何,在使用声明调用方法时,在运行时进行此类确定: dyanmic x = Foo(list); 由于动态本身不是一种类型,我应该测试什么? IDynamicMetaObjectProvider ? 编辑这是System.Linq.Expression评估程序的SQL文本的一部分。 如果TResult是动态的,那么分支的特定愿望是某些伪逻辑看起来像这样: if (type is struct) create selector that initializes each element to result values else if (type is class) create selector that initialize each element to new instance and set member properties […]

错误:表达式树可能不包含动态操作

我使用Asp.Net 4和C#,我使用EF 4。 我有这个查询,我收到一个错误: An expression tree may not contain a dynamic operation dynamic o = e.Item.DataItem; var imagesContent = context.CmsImagesContents.FirstOrDefault(img => img.ContentId == o.ContentId); 使用Lamba表达式转换动态类型似乎是不可能的。 我如何解决问题,并能够o in my Lamba使用我的对象o in my Lamba ? 谢谢 PS: e.Item.DataItem属于CmsContent类型, o.ContentId属于Int类型

组合多个表达式以动态创建包含表达式的select表达式作为getter

给出两个表达式的输入,例如: Expression<Func> nameExpression = x=>x.Name; Expression<Func> nameExpression = x=>x.MarketSegment.Name; 和a IQueryable query = ..//fetch from dbContext; 我想动态创建一个表达式,从查询中选择这些属性。 最终结果必须执行如下: Expression<IQueryable,IQueryable> query = query.Select(x=>new{ x=>x.Name, x=>x.MarketSegment.Name }); 我发现Expression.New可能是这个问题的一个选项,但我无法弄清楚如何将表达式传递给它。

Linq-to-Entities查询中的动态条件

我正在尝试将一些直接构建SQL查询的旧代码转换为Entity Framework,并遇到了许多人似乎都有的问题(从围绕该主题的大量问题来判断):如何在linq中表达动态条件。 我怎么能用linq查询表达以下代码: switch (status) { case “0”: sqlwhere = ” WHERE status = 0 “; break; } if (strsearch != “”) sqlwhere += ” AND desc LIKE ‘%” + strsearch + “%’ “; string sqlc = “SELECT top 10 * FROM c ” + sqlwhere + ” order by date desc”; 我在其他post中读过PredicateBuilder和动态Linq扩展,但我认为像没有外部库的情况下可以解决一个简单的案例。 使用.net 4.5,EF […]

动态更改动态数据项目中的数据注释

我遇到了一个在动态数据Web应用程序中自定义DataAnnotations的场景。 这是场景: [Display(Name=”DispName”)] public string DName{get;set;} 我没有为Display DataAnnotation硬编码Name =“DispName”,而是想从DataBase中获取一些值并使其适合于Name属性。 喜欢: [Display(Name=SomeValueFromDB)] public string DName{get;set;} 有没有办法从数据库中显示Display DataAnnotation的Name属性而不是硬编码它的值? 另外,如何根据表值更改ScaffoldColumn(True / false) ? 我可以使用T4模板吗? 提前致谢。

C#将IntPtr转换为int

我正在动态调用Windows API。 我在网上发现了一些可以做到这一点的代码,我对此非常感兴趣。 至少可以说,这个想法本身就很棒。 但是,我似乎无法使其适用于我的代码。 动态调用的参数类型为string , string int[] ,我想使用API GetThreadContext ,其参数为pInfo.hThred和ref ctx (如下所示)。 API调用 GetThreadContext(pInfo.hThread, ref ctx); 上面的代码将调用GetThreadContext API(假设它在我的项目中声明) – 并且工作得很好。 然而,动态调用的美妙之处在于不需要声明。 所以,我尝试动态调用: ctx = new CONTEXT {ContextFlags = 0x10007}; PROCESS_INFORMATION pInfo; CInvokeAPI.Invoke(“kernel32″,”GetThreadContext”,pInfo.hThread, ctx); 这里的问题是我不知道如何将参数ctx作为类型int传递,因为它是一个结构。 请参阅下面的其他代码 [StructLayout(LayoutKind.Sequential)] struct CONTEXT { public uint ContextFlags; unsafe fixed byte unused[160]; public uint Ebx; public uint Edx; public […]