Как я могу импортировать пространство имен System.linq в Boo?

StackOverflow https://stackoverflow.com/questions/4583076

  •  14-10-2019
  •  | 
  •  

Вопрос

Когда я пытаюсь импортировать System.Linq Пространство имен для компилятора Boo, я получаю эту ошибку:

Boo.lang.compiler.compilererror:

Пространство имен 'System.linq' не найдено, может быть, вы забыли добавить ссылку на сборку?

Я использую "Rhino.dsl.dll", и мой код двигателя DSL здесь:

public class MyDslEngine : DslEngine
{
    protected override void CustomizeCompiler(BooCompiler compiler, CompilerPipeline pipeline, string[] urls)
    {
        pipeline.Insert(1, new AnonymousBaseClassCompilerStep(typeof(DslBase), "Prepare",
            "System.Linq",
            "Azarakhsh.Framework.Repository" //it's my repository framework
            ));
        pipeline.Insert(2, new UseSymbolsStep());
        pipeline.Insert(3, new RunScriptCompilerStep());
    }
}
Это было полезно?

Решение

Зачем вам System.linq в вашем DSL? Sytem.linq должен быть «скрыт» в вашей структуре. Помимо использования LINQ в BOO, это своего рода словеса (на мой взгляд), и ваш DSL должен скрыть этот словесный материал ...

import System.Linq.Enumerable from System.Core
bar = List of string() 
bar.Add("foo")
bar.Add("baz")

baz = bar.Where({x as string | x =="baz"}).Single()

Об использовании System.linq, не пробовал, но я нашел эту ссылку Бу Маркмаил, где был скопирован приведенный выше код ...

Другие советы

Попробуйте добавить ссылку на System.Core сборка в ваш проект. Большинство занятий в System.Linq Пространство имен найдено в этой сборке.

Если это не сработает, вы также можете попытаться добавить ссылку на System.Data.Linq.

И в будущем не стоит недооценивать полезность сообщений об ошибках, предоставленных компилятором. Да, иногда они загадочны, а иногда они даже вводят в заблуждение. Но это, безусловно, хорошее место, чтобы начать, когда вы пытаетесь выяснить, почему что -то не соберется, что вы ожидали работать.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top