1

データベースに保存されている式を評価しようとしています。

"if (Q1 ==2) {result = 3.1;} elseif (Q1 ==3){result=4.1;} else result = 5.9;"

自分で解析するのではなく、DLR を使用しようとしています。Codeplex リポジトリのバージョン .92 を使用しており、ソリューションは .NET 3.5 Web サイトです。System.Core と Microsoft.Scripting.ExtenstionAttribute .dll の間で競合が発生しています。

Error =
{
  Description: "'ExtensionAttribute' is ambiguous in the namespace 'System.Runtime.CompilerServices'.", 
  File: "InternalXmlHelper.vb"
}

現時点では、.NET 4.0 にアップグレードして .net 3.5 の機能を十分に活用することはできません (したがって、ダウングレードはオプションではありません)。

どんな助けでも大歓迎です。

4

2 に答える 2

1

解決策は、Forward ExtensionAttribte を System.Core.dll に入力することです。このアセンブリの 3 つの異なるバージョン (さまざまな IronPython バージョンと共に出荷した 3 つの異なるバージョン用) を作成し、IronPython の CodePlex サイトのこのバグに添付しました。

それらをダウンロードしてバージョンを確認し、使用している CodePlex リリースのバージョンと一致するものを置き換える必要があります。

于 2010-04-15T03:07:32.363 に答える
0

私は今、複雑な考え方をしているかもしれませんが、もっと簡単な解決策が存在しますが、これは可能性として私の頭に浮かびました。

CodeDom を使用してランタイム クラスを構築し、それをインスタンス化し、その上でメソッドを実行し (純粋な式よりもコード スニペットに似ている実装として式を使用)、そのクラスから「結果」値を取得することを検討しましたか?パブリックプロパティを介したインスタンス?

于 2010-04-14T20:03:22.887 に答える