C# 是否可以在.NET3.5网站项目中使用DLR?

C# 是否可以在.NET3.5网站项目中使用DLR?,c#,asp.net,web,dynamic-language-runtime,C#,Asp.net,Web,Dynamic Language Runtime,我试图计算存储在数据库中的表达式,即 "if (Q1 ==2) {result = 3.1;} elseif (Q1 ==3){result=4.1;} else result = 5.9;" 我尝试使用DLR,而不是自己解析它。我正在使用Codeplex存储库中的.92版本,我的解决方案是一个.NET3.5网站;我发现System.Core和Microsoft.Scripting.ExtenstionaAttribute.dll之间存在冲突 Error = { Description:

我试图计算存储在数据库中的表达式,即

"if (Q1 ==2) {result = 3.1;} elseif (Q1 ==3){result=4.1;} else result = 5.9;"
我尝试使用DLR,而不是自己解析它。我正在使用Codeplex存储库中的.92版本,我的解决方案是一个.NET3.5网站;我发现System.Core和Microsoft.Scripting.ExtenstionaAttribute.dll之间存在冲突

Error =
{
  Description: "'ExtensionAttribute' is ambiguous in the namespace 'System.Runtime.CompilerServices'.", 
  File: "InternalXmlHelper.vb"
}
目前,我无法升级到.NET4.0,也无法充分利用.NET3.5的功能(因此不能选择降级)


非常感谢您的帮助。

我现在可能正在思考复杂的问题,并且有更简单的解决方案,但这是一种可能


您是否考虑过使用CodeDom构建一个运行时类,实例化一个运行时类,并在其上执行一个方法(将表达式作为其实现,这更像是代码片段而不是纯表达式)然后通过公共属性从该类实例中检索“result”值?

我现在可能想的很复杂,并且存在更简单的解决方案,但这一点在我脑海中作为一种可能性出现了


您是否考虑过使用CodeDom构建一个运行时类,实例化一个运行时类,并在其上执行一个方法(将表达式作为其实现,这更像是代码片段而不是纯表达式)然后通过公共属性从该类实例检索“result”值?

解决方案是在System.Core.dll中键入forward ExtensionAttribte。我们制作了这个程序集的3个不同版本(对于我们提供的3个不同版本,以及各种IronPython版本),并在IronPython的CodePlex站点上附加到它们


您需要下载它们并检查它们的版本,然后替换与您正在使用的CodePlex版本中的版本匹配的版本。

解决方案是在System.Core.dll中键入forward ExtensionAttribte。我们制作了这个程序集的3个不同版本(对于我们提供的3个不同版本,以及各种IronPython版本),并在IronPython的CodePlex站点上附加到它们


您需要下载它们并检查它们的版本,然后替换与您正在使用的CodePlex版本中的版本匹配的版本。

我是将dll添加到GAC还是程序集?Microsoft.Scripting.Core和Microsoft.Scripting是否需要一个?具有类型转发的ExtensionAttribute的源是否在某个位置可用?在现有的位置替换它。如果你把它放在GAC里,把它换掉。您只需要一个,它将修复M.S.Core.dll和M.S.dll。源代码不是很有趣,它只是:[assembly:TypeForwardedTo(typeof(ExtensionAttribute))],并具有对System.Core的引用。我是将dll添加到GAC还是添加到程序集?Microsoft.Scripting.Core和Microsoft.Scripting是否需要一个?具有类型转发的ExtensionAttribute的源是否在某个位置可用?在现有的位置替换它。如果你把它放在GAC里,把它换掉。您只需要一个,它将修复M.S.Core.dll和M.S.dll。源代码不是很有趣,它只是:[assembly:TypeForwardedTo(typeof(ExtensionAttribute))],并且有一个对System.Core的引用。