【发布时间】:2015-03-31 09:41:46
【问题描述】:
我之所以这么问,是因为我正在尝试将某些东西移植到使用 C# 2.0 的 unity 中。例如我有这样一行:
var patternSymbol = Expression.Parameter(typeof (T));
那么我可以用一些我自己的代码来代替它吗?注意:我可以随心所欲地改变东西,但离原始代码越远,我可能会遇到越多的工作。本质上,我需要在 C# 2.0 中复制表达式/参数行为(来自 C# 3.0?)。
(我是一个 C# 新手,发现很难找到像现在这样的历史问题的答案)。
【问题讨论】:
-
不,没有。但是,如果您可以发布该代码对
patternSymbol的作用,我们可以帮助您在 .Net 2.0 中实现相同的功能。您的编译器错误表明Expression中没有Parameter方法,但存在Expression类;但是.net 2.0 中不应该有Expression类。你确定你没有收到任何其他错误吗?如果是这样,那个 Expression 类是从哪里来的? -
是的。你说得对。几个小时前,我添加了一个空的 Expression 类来实现这一点。愚蠢的我不记得了。我将尝试修改问题以在当前上下文中有意义。谢谢斯里拉姆。
-
尝试在 .NET 2.0 中重新实现表达式树将是很多的工作。我认为有一个项目在某处做到了这一点,但如果它使用了 Unity 中不可用的 .NET 2.0 的其他方面,我不会感到惊讶。我强烈建议尝试重新设计以不再需要表达式树。
-
谢谢乔恩。有时你不知道要做多少工作,直到你涉足。我会放弃这种方法。
-
将表达式(除其他外)反向移植到 .net 2.0 的项目是 Theraot's Libraries。我能够使用它为 .net 2.0 编译 dotNetLiquid,并且他们的所有单元测试都成功通过。如果您对其他有用的反向移植感到好奇,请查看this SO question。