2014-10-06 3 views
0

У меня есть 2 приложения wpf. Мне нужно отправить в качестве параметра один из них, и в этом случае изменить параметр и в другом приложении wpf использовать новое значение переменных.Отправка параметров между приложениями wpf

Мой код:

1 WPF:

Forms.CreatRadar creatRadarWPF = new Forms.CreatRadar(azimuthStart,AzimuthEnd,Long,Lat,numOfRadars,listRadars); 
      creatRadarWPF.Show(); 

2 WPF:

public partial class CreatRadar : Window 
{ 
    private double AzimuthStart; 
    private double AzimuthEnd; 
    private double Long; 
    private double Lat; 
    private int numOfRadars; 
    private List<Radar> ListRadars; 

    public CreatRadar(double AzimuthStart, double AzimuthEnd, double Long, double Lat, int numOfRadars, List<MapSample.Radar> ListRadars) 
    { 
     InitializeComponent(); 
    } 

    private void CreatRadarBtn_Click(object sender, RoutedEventArgs e) 
    { 
     this.AzimuthStart = double.Parse(txt_AzimuthStart.Text.ToString()); 
     this.AzimuthEnd = double.Parse(txt_AzimuthEnd.Text.ToString()); 
     this.Long = double.Parse(txt_Long.Text.ToString()); 
     this.Lat = double.Parse(txt_Lat.Text.ToString()); 
     this.ListRadars = ListRadars; 
     this.numOfRadars = numOfRadars; 

     this.numOfRadars++; 
     Radar RadarTemp = new Radar(numOfRadars, this.AzimuthStart, this.AzimuthEnd, this.Long, this.Lat, 1, 1); 
     this.ListRadars.Add(RadarTemp); 

     MapDrawManager.Instance.Draw(RadarTemp); 
    } 
} 

Ошибка: Противоречивые доступность: тип параметра 'System.Collections.Generic.List' является менее доступный, чем метод 'MapSample.Forms.CreatRadar (двойной, двойной, двойной, двойной, int, System.Collections.Generic.List)'

+0

похоже, что проблема заключается в параметре listRadars, оставьте это поле пустым и посмотрите, что произойдет? – boomoto

ответ

1

Ваш класс MapSample.Radar, похоже, не является общедоступным. Это необходимо, потому что оно используется в публичной функции CreatRadar.

+0

Класс радара является общедоступным .. –

+0

Вы уверены, что вам нужны параметры в функции CreatRadar? Они не используются. Или вы сделали клип-код? – Fratyx

+0

... и что такое MapSample? Пространство имен или (public :-)) родительский класс? – Fratyx

0

Является ли класс MapSample.Radar общедоступным классом или внутренним классом? Если да, рассмотрите возможность изменения внутреннего модификатора этого класса и убедитесь, что он говорит «public class MapSample.Radar». Вы должны изменить дополнительные типы в общедоступные, если это необходимо, если вы можете использовать их из другого приложения WPF. Или вы также можете изменить сборки в сборке друзей для другого приложения WPF, установив атрибут InternalsVisibleTo в файле AssemblyInfo.

Подробнее о сборках аксессуаров здесь и о том, как создавать сильные сборки имен (обратите внимание, что внутри Visual Studio также возможно настроить подписание сборок таким образом, что команда sn не должна запускаться из командной строки) : How to declare a friend assembly?

+0

Класс радара является общедоступным: Открытый класс Радар: MapObject { –

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