<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>VSDOTNET - C#</title>
    <link>http://www.vsdotnet.ch/</link>
    <description>Un peu de mon expérience dans le monde .NET</description>
    <language>en-us</language>
    <copyright>Stéphane Schwartz</copyright>
    <lastBuildDate>Mon, 07 Sep 2009 14:47:17 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.3.9074.18820</generator>
    <managingEditor>stephane@vsdotnet.ch</managingEditor>
    <webMaster>stephane@vsdotnet.ch</webMaster>
    <item>
      <trackback:ping>http://www.vsdotnet.ch/Trackback.aspx?guid=1caee330-432d-4e15-a569-71449e2f9d92</trackback:ping>
      <pingback:server>http://www.vsdotnet.ch/pingback.aspx</pingback:server>
      <pingback:target>http://www.vsdotnet.ch/PermaLink,guid,1caee330-432d-4e15-a569-71449e2f9d92.aspx</pingback:target>
      <dc:creator>Stéphane Schwartz</dc:creator>
      <wfw:comment>http://www.vsdotnet.ch/CommentView,guid,1caee330-432d-4e15-a569-71449e2f9d92.aspx</wfw:comment>
      <wfw:commentRss>http://www.vsdotnet.ch/SyndicationService.asmx/GetEntryCommentsRss?guid=1caee330-432d-4e15-a569-71449e2f9d92</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">Windows Mobile 6.5 introduit une nouvelle
API prenant en compte le gestion des gestes. Les exemples fournis dans le SDK ne sont
malheureusement disponible qu'en C++. 
<br /><br />
De nombreux exemples et codes open-source étaient disponible (notemment sous www.codeplex.com)
pour géré ces gestes. L'API de Microsoft est désormais disponible pour le code managé,
grâce à Alex Yakhnin et Ron Buckton qui ont crée un Wrapper, disponible sur le MSDN
: http://code.msdn.microsoft.com/gestureswm. 
<br /><br />
Il est désormais possible de générer une nouvelle expérience utilisateur de manière
"relativement" simple.<img width="0" height="0" src="http://www.vsdotnet.ch/aggbug.ashx?id=1caee330-432d-4e15-a569-71449e2f9d92" /></body>
      <title>Gesture API Code Managé</title>
      <guid isPermaLink="false">http://www.vsdotnet.ch/PermaLink,guid,1caee330-432d-4e15-a569-71449e2f9d92.aspx</guid>
      <link>http://www.vsdotnet.ch/2009/09/07/GestureAPICodeManag%c3%a9.aspx</link>
      <pubDate>Mon, 07 Sep 2009 14:47:17 GMT</pubDate>
      <description>Windows Mobile 6.5 introduit une nouvelle API prenant en compte le gestion des gestes. Les exemples fournis dans le SDK ne sont malheureusement disponible qu'en C++. 
&lt;br&gt;
&lt;br&gt;
De nombreux exemples et codes open-source étaient disponible (notemment sous www.codeplex.com)
pour géré ces gestes. L'API de Microsoft est désormais disponible pour le code managé,
grâce à Alex Yakhnin et Ron Buckton qui ont crée un Wrapper, disponible sur le MSDN
: http://code.msdn.microsoft.com/gestureswm. 
&lt;br&gt;
&lt;br&gt;
Il est désormais possible de générer une nouvelle expérience utilisateur de manière
"relativement" simple.&lt;img width="0" height="0" src="http://www.vsdotnet.ch/aggbug.ashx?id=1caee330-432d-4e15-a569-71449e2f9d92" /&gt;</description>
      <comments>http://www.vsdotnet.ch/CommentView,guid,1caee330-432d-4e15-a569-71449e2f9d92.aspx</comments>
      <category>C#</category>
      <category>Windows Mobile</category>
    </item>
    <item>
      <trackback:ping>http://www.vsdotnet.ch/Trackback.aspx?guid=cf12636b-1689-48d0-9004-77d8de072b9c</trackback:ping>
      <pingback:server>http://www.vsdotnet.ch/pingback.aspx</pingback:server>
      <pingback:target>http://www.vsdotnet.ch/PermaLink,guid,cf12636b-1689-48d0-9004-77d8de072b9c.aspx</pingback:target>
      <dc:creator>Stéphane Schwartz</dc:creator>
      <wfw:comment>http://www.vsdotnet.ch/CommentView,guid,cf12636b-1689-48d0-9004-77d8de072b9c.aspx</wfw:comment>
      <wfw:commentRss>http://www.vsdotnet.ch/SyndicationService.asmx/GetEntryCommentsRss?guid=cf12636b-1689-48d0-9004-77d8de072b9c</wfw:commentRss>
      <title>Microsoft Shell Controls And Automation</title>
      <guid isPermaLink="false">http://www.vsdotnet.ch/PermaLink,guid,cf12636b-1689-48d0-9004-77d8de072b9c.aspx</guid>
      <link>http://www.vsdotnet.ch/2008/07/16/MicrosoftShellControlsAndAutomation.aspx</link>
      <pubDate>Wed, 16 Jul 2008 14:02:10 GMT</pubDate>
      <description>&lt;p class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;
&lt;span lang=FR-CH style="mso-ansi-language: FR-CH"&gt;&lt;font color=#000000&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;Un
collègue m’a soumis un problème intéressant&amp;nbsp;:&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;
&lt;span lang=FR-CH style="mso-ansi-language: FR-CH"&gt;&lt;font color=#000000&gt;Comment récupérer,
depuis une application .NET, les informations inscrites dans les propriétés d’un fichier
(bouton droit de la souris, menu propriété). Je précise bien, les propriétés système
de fichier d’un fichier, et non pas les propriétés applicatives du fichier (propriétés
d’un document Word, Excel ou PDF).&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;
&lt;font color=#000000&gt;&lt;span lang=FR-CH style="mso-ansi-language: FR-CH"&gt;Un rapide coup
d’œil sur le namespace System.IO&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;montre
que le Framework n’a rien pour gérer cela&lt;/span&gt;&lt;font face=Verdana&gt;&lt;span lang=FR-CH style="FONT-FAMILY: Wingdings; mso-ansi-language: FR-CH; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-char-type: symbol; mso-symbol-font-family: Wingdings; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;&lt;span style="mso-char-type: symbol; mso-symbol-font-family: Wingdings"&gt;L&lt;/span&gt;&lt;/span&gt;&lt;span lang=FR-CH style="mso-ansi-language: FR-CH"&gt;.
J’étends mes recherches et trouve rapidement que la clé se trouve dans l’objet COM
Microsoft Shell Controls And Automation. &lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;
&lt;span lang=FR-CH style="mso-ansi-language: FR-CH"&gt;&lt;font color=#000000&gt;Je développe
la solution, la test et peux la libellé «&amp;nbsp;Work on my machine&amp;nbsp;». Test suivant&amp;nbsp;:
un poste utilisateur. &lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/span&gt;Et là, malheur,
problème d’interop sous .NET, la journée va être longue.&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;
&lt;span lang=FR-CH style="mso-ansi-language: FR-CH"&gt;&lt;font color=#000000&gt;Après troubleshooting,
le problème à été rapidement résolut&amp;nbsp;:&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;
&lt;font color=#000000&gt;&lt;span lang=FR-CH style="mso-ansi-language: FR-CH"&gt;Le poste de
test ne reconnaissait pas &lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/span&gt;l’interface &lt;/span&gt;&lt;span style="mso-bidi-font-family: 'Courier New'; mso-no-proof: yes"&gt;IShellDispatch5,
alors que le poste de développement oui&amp;nbsp;??? Le Shell n’estt donc pas identique
sous XP que sous Vista&amp;nbsp;&lt;/span&gt;&lt;font face=Verdana&gt;&lt;span style="FONT-FAMILY: Wingdings; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-char-type: symbol; mso-symbol-font-family: Wingdings; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-char-type: symbol; mso-symbol-font-family: Wingdings"&gt;L&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-bidi-font-family: 'Courier New'; mso-no-proof: yes"&gt;,
alors que la Shell32.dll fait la même taille.&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;
&lt;span style="mso-bidi-font-family: 'Courier New'; mso-no-proof: yes"&gt;&lt;font color=#000000&gt;L’application
.Net faisant référence à un objet COM, un wrapper est automatiquement crée par VS&amp;nbsp;:
Interop.Shell32.dll. J’ai crée cet Interop sur un poste XP et l’ai mis dans le répertoir
de l’application .Net et celle-ci fonctionne comme une fleur &lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/span&gt;autant
sous XP que sous Vista&amp;nbsp;!&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;
&lt;span style="mso-bidi-font-family: 'Courier New'; mso-no-proof: yes"&gt;&lt;font color=#000000&gt;Reste
quelques questions sans réponses&amp;nbsp;:&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoListParagraphCxSpFirst style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo1"&gt;
&lt;font color=#000000&gt;&lt;span style="mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: Calibri; mso-no-proof: yes; mso-fareast-font-family: Calibri"&gt;&lt;span style="mso-list: Ignore"&gt;-&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&lt;font face=Verdana size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-bidi-font-family: 'Courier New'; mso-no-proof: yes"&gt;Pourquoi
cette erreur apparaît, même lorsque je force l’interface (cast) à IShellDispatch4&amp;nbsp;?&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoListParagraphCxSpLast style="MARGIN: 0cm 0cm 10pt 36pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo1"&gt;
&lt;font color=#000000&gt;&lt;span style="mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: Calibri; mso-no-proof: yes; mso-fareast-font-family: Calibri"&gt;&lt;span style="mso-list: Ignore"&gt;-&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&lt;font face=Verdana size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-bidi-font-family: 'Courier New'; mso-no-proof: yes"&gt;Lors
de la création dynamique de l’objet COM (Activator.CreateInstance(…)), je ne peux
pas invoquer les membres de l’objet (MethodInfo.invokMember(…))&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;
&lt;span style="mso-bidi-font-family: 'Courier New'; mso-no-proof: yes"&gt;&lt;font color=#000000&gt;Finalement,
voici un exemple de code afin de récupérer la propriété Auteur&amp;nbsp;:&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;span style="mso-bidi-font-family: 'Courier New'; mso-no-proof: yes"&gt;&lt;font size=3&gt;&lt;font color=#000000&gt;&lt;pre&gt;&lt;span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;&lt;font face=Verdana&gt;IShellDispatch4
shellDispatch &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; (IShellDispatch4)&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;new&lt;/span&gt; Shell32.ShellClass();
Folder folder &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; ((IShellDispatch4)
shellDispatch).NameSpace(Path.GetDirectoryName(&lt;span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4"&gt;@"c:\\toto.txt"&lt;/span&gt;));
FolderItem folderItem &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; folder.ParseName(Path.GetFileName(&lt;span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4"&gt;@"c:\\toto.txt"&lt;/span&gt;)); &lt;span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;//
0= le nom&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;//
1= La taille&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;//
...&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;//
9= l'auteur&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;//
11= objet&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;/span&gt;&lt;span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;//
12= catégorie&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;return&lt;/span&gt; folder.GetDetailsOf(folderItem,
9);&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;font face="Courier New" color=#008000&gt;&lt;/font&gt;&lt;img width="0" height="0" src="http://www.vsdotnet.ch/aggbug.ashx?id=cf12636b-1689-48d0-9004-77d8de072b9c" /&gt;</description>
      <comments>http://www.vsdotnet.ch/CommentView,guid,cf12636b-1689-48d0-9004-77d8de072b9c.aspx</comments>
      <category>C#</category>
    </item>
    <item>
      <trackback:ping>http://www.vsdotnet.ch/Trackback.aspx?guid=fcd3b366-8b37-4940-834c-fbbfe40e18a0</trackback:ping>
      <pingback:server>http://www.vsdotnet.ch/pingback.aspx</pingback:server>
      <pingback:target>http://www.vsdotnet.ch/PermaLink,guid,fcd3b366-8b37-4940-834c-fbbfe40e18a0.aspx</pingback:target>
      <dc:creator>Stéphane Schwartz</dc:creator>
      <wfw:comment>http://www.vsdotnet.ch/CommentView,guid,fcd3b366-8b37-4940-834c-fbbfe40e18a0.aspx</wfw:comment>
      <wfw:commentRss>http://www.vsdotnet.ch/SyndicationService.asmx/GetEntryCommentsRss?guid=fcd3b366-8b37-4940-834c-fbbfe40e18a0</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Voici un exemple de code afin d'accèder aux membres d'un groupe dans l'AD ...
</p>
        <pre>
          <span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"> String
ADFullPath <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span><span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4"><a href="ldap://NomDeLAD">LDAP://NomDeLAD</a></span>;
DirectoryEntry Ldap <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">new</span> DirectoryEntry(ADFullPath);
DirectorySearcher searcher <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">new</span> DirectorySearcher(Ldap);
searcher.Filter <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span><span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"(&amp;(objectClass=group)(cn="</span><span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">+</span> GroupName <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">+</span><span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"))"</span>;
SearchResult results <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span> searcher.FindOne(); <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">if</span> (results
!<span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">null</span>)
{ DirectoryEntry AdGroup <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">new</span> DirectoryEntry(results.Path);
System.DirectoryServices.PropertyCollection pcoll <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span> AdGroup.Properties; <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">int</span> n <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span> pcoll[<span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"member"</span>].Count; <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">for</span> (<span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">int</span> l <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span> 0;
l &lt; n; l++) { DirectoryEntry AdUser <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">new</span> DirectoryEntry(ADFullPath <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">+</span><span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"/"</span><span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">+</span> pcoll[<span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"member"</span>][l].ToString());
TreeNode tn <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">new</span> TreeNode(AdUser.Properties[<span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"name"</span>].Value.ToString());
tvwMembres.Nodes.Add(tn); TreeNode tn1 <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">new</span> TreeNode(AdUser.Properties[<span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"description"</span>].Value.ToString());
tn1.ImageIndex <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span> 2;
tn1.SelectedImageIndex <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span> tn1.ImageIndex;
tn1.ToolTipText <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span><span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"description"</span>;
tn.Nodes.Add(tn1); TreeNode tn2 <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">new</span> TreeNode(AdUser.Properties[<span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"sAMAccountName"</span>].Value.ToString());
tn2.ImageIndex <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span> 1;
tn2.SelectedImageIndex <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span> tn2.ImageIndex;
tn2.ToolTipText <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span><span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"Account
Name"</span>; tn.Nodes.Add(tn2); TreeNode tn3 <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">new</span> TreeNode(AdUser.Properties[<span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"mail"</span>].Value.ToString());
tn3.ImageIndex <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span> 3;
tn3.SelectedImageIndex <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span> tn3.ImageIndex;
tn3.ToolTipText <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span><span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"Mail"</span>;
tn.Nodes.Add(tn3); TreeNode tn4 <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">new</span> TreeNode(AdUser.Properties[<span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"physicalDeliveryOfficeName"</span>].Value.ToString());
tn4.ImageIndex <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span> 4;
tn4.SelectedImageIndex <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span> tn4.ImageIndex;
tn4.ToolTipText <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span><span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"Office
Name"</span>; tn.Nodes.Add(tn4); AdUser.Close(); } Ldap.Close(); AdGroup.Close();</span>
        </pre>
        <p>
 
</p>
        <img width="0" height="0" src="http://www.vsdotnet.ch/aggbug.ashx?id=fcd3b366-8b37-4940-834c-fbbfe40e18a0" />
      </body>
      <title>Extraire les utilisateurs d'un groupe dans Active Directory</title>
      <guid isPermaLink="false">http://www.vsdotnet.ch/PermaLink,guid,fcd3b366-8b37-4940-834c-fbbfe40e18a0.aspx</guid>
      <link>http://www.vsdotnet.ch/2008/07/15/ExtraireLesUtilisateursDunGroupeDansActiveDirectory.aspx</link>
      <pubDate>Tue, 15 Jul 2008 13:22:19 GMT</pubDate>
      <description>&lt;p&gt;
Voici un exemple de code afin d'accèder aux membres d'un groupe dans l'AD ...
&lt;/p&gt;
&lt;pre&gt;&lt;span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt; String
ADFullPath &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4"&gt;&lt;a href="ldap://NomDeLAD"&gt;LDAP://NomDeLAD&lt;/a&gt;&lt;/span&gt;;
DirectoryEntry Ldap &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;new&lt;/span&gt; DirectoryEntry(ADFullPath);
DirectorySearcher searcher &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;new&lt;/span&gt; DirectorySearcher(Ldap);
searcher.Filter &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4"&gt;"(&amp;amp;(objectClass=group)(cn="&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;+&lt;/span&gt; GroupName &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;+&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4"&gt;"))"&lt;/span&gt;;
SearchResult results &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; searcher.FindOne(); &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;if&lt;/span&gt; (results
!&lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;null&lt;/span&gt;)
{ DirectoryEntry AdGroup &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;new&lt;/span&gt; DirectoryEntry(results.Path);
System.DirectoryServices.PropertyCollection pcoll &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; AdGroup.Properties; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;int&lt;/span&gt; n &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; pcoll[&lt;span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4"&gt;"member"&lt;/span&gt;].Count; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;for&lt;/span&gt; (&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;int&lt;/span&gt; l &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; 0;
l &amp;lt; n; l++) { DirectoryEntry AdUser &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;new&lt;/span&gt; DirectoryEntry(ADFullPath &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;+&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4"&gt;"/"&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;+&lt;/span&gt; pcoll[&lt;span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4"&gt;"member"&lt;/span&gt;][l].ToString());
TreeNode tn &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;new&lt;/span&gt; TreeNode(AdUser.Properties[&lt;span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4"&gt;"name"&lt;/span&gt;].Value.ToString());
tvwMembres.Nodes.Add(tn); TreeNode tn1 &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;new&lt;/span&gt; TreeNode(AdUser.Properties[&lt;span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4"&gt;"description"&lt;/span&gt;].Value.ToString());
tn1.ImageIndex &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; 2;
tn1.SelectedImageIndex &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; tn1.ImageIndex;
tn1.ToolTipText &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4"&gt;"description"&lt;/span&gt;;
tn.Nodes.Add(tn1); TreeNode tn2 &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;new&lt;/span&gt; TreeNode(AdUser.Properties[&lt;span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4"&gt;"sAMAccountName"&lt;/span&gt;].Value.ToString());
tn2.ImageIndex &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; 1;
tn2.SelectedImageIndex &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; tn2.ImageIndex;
tn2.ToolTipText &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4"&gt;"Account
Name"&lt;/span&gt;; tn.Nodes.Add(tn2); TreeNode tn3 &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;new&lt;/span&gt; TreeNode(AdUser.Properties[&lt;span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4"&gt;"mail"&lt;/span&gt;].Value.ToString());
tn3.ImageIndex &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; 3;
tn3.SelectedImageIndex &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; tn3.ImageIndex;
tn3.ToolTipText &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4"&gt;"Mail"&lt;/span&gt;;
tn.Nodes.Add(tn3); TreeNode tn4 &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;new&lt;/span&gt; TreeNode(AdUser.Properties[&lt;span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4"&gt;"physicalDeliveryOfficeName"&lt;/span&gt;].Value.ToString());
tn4.ImageIndex &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; 4;
tn4.SelectedImageIndex &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; tn4.ImageIndex;
tn4.ToolTipText &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4"&gt;"Office
Name"&lt;/span&gt;; tn.Nodes.Add(tn4); AdUser.Close(); } Ldap.Close(); AdGroup.Close();&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.vsdotnet.ch/aggbug.ashx?id=fcd3b366-8b37-4940-834c-fbbfe40e18a0" /&gt;</description>
      <comments>http://www.vsdotnet.ch/CommentView,guid,fcd3b366-8b37-4940-834c-fbbfe40e18a0.aspx</comments>
      <category>C#</category>
      <category>Active Directory</category>
    </item>
    <item>
      <trackback:ping>http://www.vsdotnet.ch/Trackback.aspx?guid=de365dcf-a527-4547-bfea-3f6372c3cfb5</trackback:ping>
      <pingback:server>http://www.vsdotnet.ch/pingback.aspx</pingback:server>
      <pingback:target>http://www.vsdotnet.ch/PermaLink,guid,de365dcf-a527-4547-bfea-3f6372c3cfb5.aspx</pingback:target>
      <dc:creator>Stéphane Schwartz</dc:creator>
      <wfw:comment>http://www.vsdotnet.ch/CommentView,guid,de365dcf-a527-4547-bfea-3f6372c3cfb5.aspx</wfw:comment>
      <wfw:commentRss>http://www.vsdotnet.ch/SyndicationService.asmx/GetEntryCommentsRss?guid=de365dcf-a527-4547-bfea-3f6372c3cfb5</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
En download <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=c15d210d-a926-46a8-a586-31f8a2e576fe&amp;DisplayLang=en">ici</a>.
</p>
        <p>
C'est toujours assez utile ;)
</p>
        <img width="0" height="0" src="http://www.vsdotnet.ch/aggbug.ashx?id=de365dcf-a527-4547-bfea-3f6372c3cfb5" />
      </body>
      <title>Les raccourcis VS2005 C#</title>
      <guid isPermaLink="false">http://www.vsdotnet.ch/PermaLink,guid,de365dcf-a527-4547-bfea-3f6372c3cfb5.aspx</guid>
      <link>http://www.vsdotnet.ch/2008/01/15/LesRaccourcisVS2005C.aspx</link>
      <pubDate>Tue, 15 Jan 2008 21:01:41 GMT</pubDate>
      <description>&lt;p&gt;
En download &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=c15d210d-a926-46a8-a586-31f8a2e576fe&amp;amp;DisplayLang=en"&gt;ici&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
C'est toujours assez utile ;)
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.vsdotnet.ch/aggbug.ashx?id=de365dcf-a527-4547-bfea-3f6372c3cfb5" /&gt;</description>
      <comments>http://www.vsdotnet.ch/CommentView,guid,de365dcf-a527-4547-bfea-3f6372c3cfb5.aspx</comments>
      <category>C#</category>
    </item>
    <item>
      <trackback:ping>http://www.vsdotnet.ch/Trackback.aspx?guid=c4489d22-fc1a-4d5e-95c4-18639ee77711</trackback:ping>
      <pingback:server>http://www.vsdotnet.ch/pingback.aspx</pingback:server>
      <pingback:target>http://www.vsdotnet.ch/PermaLink,guid,c4489d22-fc1a-4d5e-95c4-18639ee77711.aspx</pingback:target>
      <dc:creator>Stéphane Schwartz</dc:creator>
      <wfw:comment>http://www.vsdotnet.ch/CommentView,guid,c4489d22-fc1a-4d5e-95c4-18639ee77711.aspx</wfw:comment>
      <wfw:commentRss>http://www.vsdotnet.ch/SyndicationService.asmx/GetEntryCommentsRss?guid=c4489d22-fc1a-4d5e-95c4-18639ee77711</wfw:commentRss>
      <title>Rendre une méthode obsolète …</title>
      <guid isPermaLink="false">http://www.vsdotnet.ch/PermaLink,guid,c4489d22-fc1a-4d5e-95c4-18639ee77711.aspx</guid>
      <link>http://www.vsdotnet.ch/2007/10/16/RendreUneM%c3%a9thodeObsol%c3%a8te.aspx</link>
      <pubDate>Tue, 16 Oct 2007 11:14:50 GMT</pubDate>
      <description>&lt;p class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;J’ai cherché comment rendre une
méthode obsolète en .NET. En effet, j’ai crée une nouvelle méthode lors de l’évolution
d’un projet, mais ne pouvais pas supprimer (ou remplacer) l’ancienne méthode.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;
&lt;font size=3&gt;&lt;font color=#000000&gt;&lt;font face="Times New Roman"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;La solution est simple&amp;nbsp;: il
suffit d’ajouter l’attribut [Obsolete]&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;
&lt;font size=3&gt;&lt;font color=#000000&gt;&lt;font face="Times New Roman"&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;Trois signature s’offrent à nous&amp;nbsp;:&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;[Obsolete]&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;&lt;font color=#000080&gt;void&lt;/font&gt; &lt;em&gt;Methode&lt;/em&gt;()
{}&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;Qui indiquera simplement, via intellisense,
que la méthode est obsolète&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;
&lt;font size=3&gt;&lt;font color=#000000&gt;&lt;font face="Times New Roman"&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;[Obsolete(«&amp;nbsp;&lt;font color=#0000ff&gt;Cette
méthode à été remplacée par XXX&lt;/font&gt;&amp;nbsp;»&amp;nbsp;)]&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;&lt;font color=#000080&gt;void&lt;/font&gt; &lt;em&gt;Methode&lt;/em&gt;()
{}&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;Qui indiquera simplement, via intellisense,
que la méthode est obsolète en indiquant la raison.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;
&lt;font size=3&gt;&lt;font color=#000000&gt;&lt;font face="Times New Roman"&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;[Obsolete(«&amp;nbsp;&lt;font color=#0000ff&gt;Cette
méthode à été remplacée par XXX&lt;/font&gt;&amp;nbsp;», &lt;font color=#000080&gt;true&lt;/font&gt;&amp;nbsp;)]&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;&lt;font color=#000080&gt;void&lt;/font&gt; &lt;em&gt;Methode&lt;/em&gt;()
{}&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;Générera en plus une erreur lors
de la compilation.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;
&lt;font size=3&gt;&lt;font color=#000000&gt;&lt;font face="Times New Roman"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&amp;nbsp;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.vsdotnet.ch/aggbug.ashx?id=c4489d22-fc1a-4d5e-95c4-18639ee77711" /&gt;</description>
      <comments>http://www.vsdotnet.ch/CommentView,guid,c4489d22-fc1a-4d5e-95c4-18639ee77711.aspx</comments>
      <category>C#</category>
      <category>Tips</category>
    </item>
    <item>
      <trackback:ping>http://www.vsdotnet.ch/Trackback.aspx?guid=4383f006-a652-4fa8-9169-7ab0bdc1d436</trackback:ping>
      <pingback:server>http://www.vsdotnet.ch/pingback.aspx</pingback:server>
      <pingback:target>http://www.vsdotnet.ch/PermaLink,guid,4383f006-a652-4fa8-9169-7ab0bdc1d436.aspx</pingback:target>
      <dc:creator>Stéphane Schwartz</dc:creator>
      <wfw:comment>http://www.vsdotnet.ch/CommentView,guid,4383f006-a652-4fa8-9169-7ab0bdc1d436.aspx</wfw:comment>
      <wfw:commentRss>http://www.vsdotnet.ch/SyndicationService.asmx/GetEntryCommentsRss?guid=4383f006-a652-4fa8-9169-7ab0bdc1d436</wfw:commentRss>
      <title>Récupérer le nom de la méthode en cours d’exécution</title>
      <guid isPermaLink="false">http://www.vsdotnet.ch/PermaLink,guid,4383f006-a652-4fa8-9169-7ab0bdc1d436.aspx</guid>
      <link>http://www.vsdotnet.ch/2007/10/01/R%c3%a9cup%c3%a9rerLeNomDeLaM%c3%a9thodeEnCoursDex%c3%a9cution.aspx</link>
      <pubDate>Mon, 01 Oct 2007 10:28:56 GMT</pubDate>
      <description>&lt;p class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;On a toujours voulu récupérer le
nom de la méthode en cours d’exécution, quelque soit le langage, afin de tracer les
erreurs d’exécution. En VB4,5 et 6, chacun a développer sa propre technique car rien
de bien sérieux n’existait.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;
&lt;font size=3&gt;&lt;font color=#000000&gt;&lt;font face="Times New Roman"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;
&lt;font color=#000000&gt;&lt;font face="Times New Roman" size=3&gt;En .NET, nous avons les NameSpace &lt;/font&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;System.Diagnostics
&amp;amp; System.Reflection &lt;/span&gt;&lt;font face="Times New Roman" size=3&gt;pour résoudre ce
problème&amp;nbsp;:&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;
&lt;font size=3&gt;&lt;font color=#000000&gt;&lt;font face="Times New Roman"&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;
&lt;span style="FONT-SIZE: 10pt; COLOR: #2b91af; FONT-FAMILY: 'Courier New'"&gt;StackFrame&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color=#000000&gt; stackFrame1
= &lt;/font&gt;&lt;span style="COLOR: blue"&gt;new&lt;/span&gt;&lt;font color=#000000&gt; &lt;/font&gt;&lt;span style="COLOR: #2b91af"&gt;StackFrame&lt;/span&gt;&lt;font color=#000000&gt;();&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;
&lt;span style="FONT-SIZE: 10pt; COLOR: #2b91af; FONT-FAMILY: 'Courier New'"&gt;MethodBase&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color=#000000&gt; methodBase1
= stackFrame1.GetMethod();&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;
&lt;font size=3&gt;&lt;font color=#000000&gt;&lt;font face="Times New Roman"&gt;Permet de récupérer
le nom de la méthode en cours d’exécution.&lt;span style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;
&lt;font size=3&gt;&lt;font color=#000000&gt;&lt;font face="Times New Roman"&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;
&lt;span style="FONT-SIZE: 10pt; COLOR: #2b91af; FONT-FAMILY: 'Courier New'"&gt;StackTrace&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color=#000000&gt; stackTrace
= &lt;/font&gt;&lt;span style="COLOR: blue"&gt;new&lt;/span&gt;&lt;font color=#000000&gt; &lt;/font&gt;&lt;span style="COLOR: #2b91af"&gt;StackTrace&lt;/span&gt;&lt;font color=#000000&gt;();&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;
&lt;span style="FONT-SIZE: 10pt; COLOR: #2b91af; FONT-FAMILY: 'Courier New'"&gt;StackFrame&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color=#000000&gt; stackFrame
= stackTrace.GetFrame(1);&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;
&lt;span style="FONT-SIZE: 10pt; COLOR: #2b91af; FONT-FAMILY: 'Courier New'"&gt;MethodBase&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color=#000000&gt; methodBase
= stackFrame.GetMethod();&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;Permet de récupérer le nom de la
méthode qui a appelé la méthode en cours d’exécution.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;
&lt;font size=3&gt;&lt;font face="Times New Roman"&gt;&lt;font color=#000000&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'; mso-ansi-language: FR; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: FR; mso-bidi-language: AR-SA"&gt;&lt;font color=#000000&gt;Très
utile afin de tracer les exceptions…&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.vsdotnet.ch/aggbug.ashx?id=4383f006-a652-4fa8-9169-7ab0bdc1d436" /&gt;</description>
      <comments>http://www.vsdotnet.ch/CommentView,guid,4383f006-a652-4fa8-9169-7ab0bdc1d436.aspx</comments>
      <category>C#</category>
      <category>Log</category>
    </item>
  </channel>
</rss>