Можно ли использовать DLR в проекте веб-сайта .NET 3.5? - PullRequest
1 голос
/ 14 апреля 2010

Я пытаюсь оценить выражение, хранящееся в базе данных, т.е.

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

Вместо того, чтобы разбирать его сам, я пытаюсь использовать DLR. Я использую версию .92 из репозитория Codeplex, и моим решением является веб-сайт .NET 3.5; и у меня возникли конфликты между System.Core и Microsoft.Scripting.ExtenstionAttribute .dll's.

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

В настоящее время я не могу выполнить обновление до .NET 4.0 и активно использовать функции .net 3.5 (поэтому понижение версии невозможно).

Любая помощь с благодарностью.

Ответы [ 2 ]

1 голос
/ 15 апреля 2010

Решение состоит в том, чтобы напечатать forwardAttribte forward в System.Core.dll. Мы сделали 3 разные версии этой сборки (для 3 разных версий, которые мы поставили с различными версиями IronPython) и прикрепили их к этой ошибке на сайте CodePlex IronPython.

Вам нужно будет загрузить их, проверить их версии и заменить ту, которая соответствует версии в используемой версии CodePlex.

0 голосов
/ 15 апреля 2010

Может быть, сейчас у меня сложное мышление, и существуют более простые решения, но это появилось в моей голове как возможность;

Рассматривали ли вы создание класса времени выполнения с использованием CodeDom, создание его экземпляра, выполнение на нем метода (с выражением в качестве его реализации, которое больше похоже на фрагменты кода, чем чистое выражение), а затем получение значения 'result' из этого экземпляра класса через публичное свойство?

...