2014-01-11 5 views
1

I'am делает это:открытый частичный класс | вар

var doc = new XPathDocument(Application.StartupPath + "/InfoR.xml"); 
var navigator = doc.CreateNavigator(); 

var Name = navigator.SelectSingleNode("//appsettings/name"); 

var user = navigator.SelectSingleNode("//appsettings/user"); 
var PPs = navigator.SelectSingleNode("//appsettings/PPs"); 
var aze = navigator.SelectSingleNode("//appsettings/aze"); 

I'am пытается прочитать те, на общедоступном частичном классе. поэтому я могу получить доступ к имени, пользователю и т. д. из любого места моего приложения. (Form1.cs) , но, как я вижу, не может сделать var там ... не нравится int, string, float, ....

+0

Что это цель этого? U хотите получить настройки пользователей из xml-файла? – Jim

+0

Предположим, я хочу получить «пользователь» в строку и использовать ее. вместо того, чтобы читать каждый раз ..., чтобы получить его – user3091970

ответ

3

Это невозможно, как вы это делаете. var для переменных, локальных по отношению к методу , а не класс. Вам нужно объявить эти переменные на уровне класса как такового:

private XPathNavigator Name; 
private XPathNavigator user; 
private XPathNavigator PPs; 
private XPathNavigator aze; 

, то в какой бы метод это:

this.Name = navigator.SelectSingleNode("//appsettings/name"); 

this.user = navigator.SelectSingleNode("//appsettings/user"); 
this.PPs = navigator.SelectSingleNode("//appsettings/PPs"); 
this.aze = navigator.SelectSingleNode("//appsettings/aze"); 

Тогда другие методы в этом классе, или его частичные друзья в другом месте, может доступ к нему.

2

Если вы объявляете эти переменные в рамках метода, у вас будет доступ к ним только в этом методе. Если вы хотите использовать их в других методах в своей форме, вам нужно объявить их как переменные-члены. Что-то вроде:

public partial class Form1 : Form 
{ 
    XPathNavigator Name; 
    XPathNavigator user; 
    XPathNavigator PPS; 
    XPathNavigator aze; 

    public Form1() 
    { 
     InitializeComponent(); 
    } 

    private void Form1_Load(object sender, EventArgs e) 
    { 
     var doc = new XPathDocument(Application.StartupPath + "/InfoR.xml"); 
     var navigator = doc.CreateNavigator(); 

     Name = navigator.SelectSingleNode("//appsettings/name"); 

     user = navigator.SelectSingleNode("//appsettings/user"); 
     PPs = navigator.SelectSingleNode("//appsettings/PPs"); 
     aze = navigator.SelectSingleNode("//appsettings/aze"); 
    } 
} 
0

Как я правильно понимаю ваш вопрос, вы, скорее всего, ищет что-то вроде этого (как пример того, как извлечь узел и сохранить его в собственность):

public partial class Form1 : Form 
{ 
    public Form1() 
    { 
     InitializeComponent(); 
    } 

    public string Name { get; set; } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     XPathDocument document = new XPathDocument(Application.StartupPath + "/InfoR.xml"); 
     XPathNavigator navigator = document.CreateNavigator(); 
     XPathNavigator node = navigator.SelectSingleNode("//appsettings/name"); 
     Name = node.InnerXml; 
    } 
} 
Смежные вопросы