Bonne année tout le monde,
Lors de la conception de l'application, j'intègre à mon projet un
fichier Xml pour peupler une datagrid. Comment puis je avoir accés au
fichier xml présent dans l'assemblée pour qu'il puisse être source de
données pour le composant ? Je pense qu'il est possible avec
System.Reflexion, mais comment...
Merci de vos réponses.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Simon Mourier [MS]
Il faut insérer le fichier dans le projet, et changer le paramètre du fichier "Build Action" à "Embedded Resource".
Ensuite on peut y accéder comme ceci par exemple:
public class MyClass { private static XmlDocument _dataSource;
public static XmlDocument DataSource { get { if (_dataSource == null) { Assembly assembly = typeof(MyClass).Assembly; Stream stream = assembly.GetManifestResourceStream("MyNamespace.MyClass.xml"); _dataSource = new XmlDocument(); _dataSource.Load(stream); stream.Close(); } return _dataSource; } }
etc...
Le chemin "MyNamespace.MyClass.xml" dépend vraiment de la position du fichier dans l'assembly, par rapport aux namespaces, etc.... Pour en être sûr, une des méthodes les plus simples consiste à ouvrir l'assembly une fois compilée avec reflector www.aisto.com/roeder/dotnet/, et regarder dans "Resources". Simon.
"Pérégrin Dev <"info" <NoSpam> a écrit dans le message de news:
Bonne année tout le monde, Lors de la conception de l'application, j'intègre à mon projet un fichier Xml pour peupler une datagrid. Comment puis je avoir accés au fichier xml présent dans l'assemblée pour qu'il puisse être source de données pour le composant ? Je pense qu'il est possible avec System.Reflexion, mais comment... Merci de vos réponses.
Il faut insérer le fichier dans le projet, et changer le paramètre du
fichier "Build Action" à "Embedded Resource".
Ensuite on peut y accéder comme ceci par exemple:
public class MyClass
{
private static XmlDocument _dataSource;
public static XmlDocument DataSource
{
get
{
if (_dataSource == null)
{
Assembly assembly = typeof(MyClass).Assembly;
Stream stream =
assembly.GetManifestResourceStream("MyNamespace.MyClass.xml");
_dataSource = new XmlDocument();
_dataSource.Load(stream);
stream.Close();
}
return _dataSource;
}
}
etc...
Le chemin "MyNamespace.MyClass.xml" dépend vraiment de la position du
fichier dans l'assembly, par rapport aux namespaces, etc.... Pour en être
sûr, une des méthodes les plus simples consiste à ouvrir l'assembly une fois
compilée avec reflector www.aisto.com/roeder/dotnet/, et regarder dans
"Resources".
Simon.
"Pérégrin Dev <"info" <NoSpam> a écrit dans le message de news:
O0SLaMO8EHA.3504@TK2MSFTNGP12.phx.gbl...
Bonne année tout le monde,
Lors de la conception de l'application, j'intègre à mon projet un fichier
Xml pour peupler une datagrid. Comment puis je avoir accés au fichier xml
présent dans l'assemblée pour qu'il puisse être source de données pour le
composant ? Je pense qu'il est possible avec System.Reflexion, mais
comment...
Merci de vos réponses.
Il faut insérer le fichier dans le projet, et changer le paramètre du fichier "Build Action" à "Embedded Resource".
Ensuite on peut y accéder comme ceci par exemple:
public class MyClass { private static XmlDocument _dataSource;
public static XmlDocument DataSource { get { if (_dataSource == null) { Assembly assembly = typeof(MyClass).Assembly; Stream stream = assembly.GetManifestResourceStream("MyNamespace.MyClass.xml"); _dataSource = new XmlDocument(); _dataSource.Load(stream); stream.Close(); } return _dataSource; } }
etc...
Le chemin "MyNamespace.MyClass.xml" dépend vraiment de la position du fichier dans l'assembly, par rapport aux namespaces, etc.... Pour en être sûr, une des méthodes les plus simples consiste à ouvrir l'assembly une fois compilée avec reflector www.aisto.com/roeder/dotnet/, et regarder dans "Resources". Simon.
"Pérégrin Dev <"info" <NoSpam> a écrit dans le message de news:
Bonne année tout le monde, Lors de la conception de l'application, j'intègre à mon projet un fichier Xml pour peupler une datagrid. Comment puis je avoir accés au fichier xml présent dans l'assemblée pour qu'il puisse être source de données pour le composant ? Je pense qu'il est possible avec System.Reflexion, mais comment... Merci de vos réponses.