2013-10-08 2 views
0

В моем приложении у меня есть как System.Windows (WindowsBase), так и System.Windows.Forms сборки. Я должен использовать System.Windows.Application.System.windows и system.windows.forms

Но приложение вместо этого набирает класс Application из System.Windows.Forms.

Я указал ссылку System.Windows; в коде, но приложение по-прежнему собирает класс Application из System.Windows.Forms.

Не могли бы вы помочь мне, как обратиться к классу «Приложение» из System.Windows.

+0

Что вы пытаетесь сделать? ваше приложение - приложение winforms или приложение WPF? что означает начальный объект, где определяется метод «Main»? 'System.Windows.Application.Current' будет null в приложении winforms. –

ответ

1

использовать полное имя, как показано ниже

System.Windows.Application app = new System.Windows.Application(); 
1

удалить ссылку на System.Windows.Forms, либо указать, какие вы используете, когда вы его используете.

т.е.

System.Windows.MessageBox mb = new System.Windows.MessageBox(); 
1

Если у вас есть одинаковые имена классов, нужно, чтобы полностью определить, по крайней мере один из них с их префиксом пространства имен.

Скорее всего, вы добавили using директиву к одному из ваших файлов кода, как следующее:

using System.Windows.Forms; 

Если это приложение WPF вы, вероятно, не хотите, чтобы когда-либо добавить, используя директиву System.Windows.Forms. То же самое происходит, если вы используете приложение Windows Forms.

Например, предположим, что у вас есть следующий код:

using System.Windows; 
using System.Windows.Forms; 

... 

Application myApp = new Application(); // this would throw a compile-time ambiguity error! 

С другой стороны, вы можете сделать это:

using System.Windows; 

... 

Application myApp = new Application(); 
System.Windows.Forms.MessageBox.Show("test"); 
+0

Спасибо всем за ответ. По вашему предложению я попытался использовать полное имя. Но я не нашел «Приложение» в System.Windows. посмотрел на сборку WindowsBase, и я не видел System.Windows.Application. Какую библиотеку/сборку я могу найти? Я думал, что это WindowsBase. – user12121

+0

Google полное имя класса «System.Windows.Application» и эталонная страница MSDN расскажут вам имя DLL сборки. –

+0

Спасибо. Я могу решить эту проблему. Я использую неправильную DLL. Теперь, когда я пытаюсь получить «Стрим» из следующего кода «Stream stream = Application.GetResourceStream (uri) .Stream;» .. получение следующего сообщения об ошибке. Что означает эта ошибка: «Ошибка Тип« System.Windows.Markup.IQueryAmbient »определен в сборке, на которую не ссылаются. Вы должны добавить ссылку на сборку« System.Xaml, Version = 4.0.0.0, Culture = нейтральный, PublicKeyToken = b77a5c561934e089 '. \t test.cs TestSolution " – user12121

Смежные вопросы