Использование методов Linq приводит к отсутствию ссылок на DependencyObject в WindowsBase - PullRequest
0 голосов
/ 12 июня 2010

У меня есть некоторый исходный код на c #, который я хочу скомпилировать с использованием CodeDom в моем приложении (для плагина)

Все работает нормально, за исключением случаев, когда я использую функцию расширения Linq в некоторых моих коллекциях

var dict = new Dictionary<KeyType, ValueType>();
....
dict.Any(KV=>KV.Key == "Some Key");

Когда я пытаюсь скомпилировать исходный код с этим кодом, CodeDom жалуется, что мне не хватает ссылки на DependencyObject в WindowsBase.

Я не понимаю, почему это происходит. Ни класс Dictionary, ни метод расширения Any не ссылаются на этот класс, который, очевидно, является частью Windows. Forms

Обычно я просто игнорирую причуду, заставляю CodeDom добавлять ссылку и двигаться дальше, но, видимо, WindowsBase особенная и не всегда распространяется, и я не хочу вызывать проблемы для пользователей, которые могут неправильно установить ее.

1 Ответ

1 голос
/ 14 июня 2010

Я решил непосредственную проблему, добавив ссылку на WindowsBase в свое приложение и установив ее всегда копировать.Тогда я смог правильно добавить ссылку в codeDom.

Я все еще не понимаю, зачем нужна DLL, но я обошел ее.

...