<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://www.dotnetzone.gr:443/cs/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Πρώτα Βήματα - Γλώσσες προγραμματισμού</title><link>https://www.dotnetzone.gr:443/cs/forums/74/ShowForum.aspx</link><description>Τα πρώτα βήματα στις γλώσσες VB6, VB.NET, και C#</description><dc:language>el</dc:language><generator>CommunityServer 2.1 SP3 (Build: 20423.1)</generator><item><title>Απ: Class member by name</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/47836.aspx</link><pubDate>Fri, 23 Jan 2009 09:03:28 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:47836</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/47836.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=74&amp;PostID=47836</wfw:commentRss><description>&lt;P&gt;Μήπως το κάνεις εξαιρετικά περίπλοκο? Κάθε κλήση στο remoting αντικείμενο είναι άλλη μία κλήση μέσω δικτύου. Είναι ό,τι πιο αργό μπορείς να κάνεις. Το ευκολότερο είναι να ζητήσεις από το service ένα dictionary με τα settings και μετά να γράψεις &lt;/P&gt;
&lt;P&gt;&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:black;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;foreach&lt;/SPAN&gt; (KeyValuePair&amp;lt;&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;string&lt;/SPAN&gt;,&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;object&lt;/SPAN&gt;&amp;gt; item &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;in&lt;/SPAN&gt; settings)&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Properties.Settings.Default[item.Key] &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:red;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;=&lt;/SPAN&gt; item.Value;&lt;BR&gt;}&lt;/SPAN&gt;&lt;/P&gt;</description></item><item><title>Απ: Class member by name</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/47835.aspx</link><pubDate>Fri, 23 Jan 2009 08:21:54 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:47835</guid><dc:creator>M1ke</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/47835.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=74&amp;PostID=47835</wfw:commentRss><description>Εφόσον μου είπες ότι αργεί το Reflection τότε απάντησες και στην επόμενη απορία μου! Απλά ήταν η πρώτη φορά που δούλευα το Remoting, με ένα winforms client να μιλάει σε ένα windows service για τις παραμέτρους λειτουργίας του, οπότε και στο service OnPropertyChanged έβαζα τις τιμές του αλλαγμένου πεδίου στο settings.. Δεν ήταν εύλογο να ζητήσω:&lt;br&gt;&lt;br&gt;Properties.Settings.Default[e.PropertyName] = remotableObject[e.PropertyName] ?&lt;br&gt;&lt;br&gt;Επίσης σκέφτηκα το άλλο. Αν κρατήσω ένα Dictionary&amp;lt;string, Object&amp;gt; με το key να είναι το όνομα του πεδίου και &amp;lt;Object&amp;gt; η τιμή του (η καλύτερα ένα ref στο πεδίο) θα είναι σωστό? Η απλά (και για απλούς τύπους δεδομένων) να κάνω ένα interface αλα INotifyPropertyChanged και να περνάω και to value στο EventArgs?&lt;br&gt;</description></item><item><title>Απ: Class member by name</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/47814.aspx</link><pubDate>Thu, 22 Jan 2009 18:41:07 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:47814</guid><dc:creator>Τάσκος Γιώργος</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/47814.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=74&amp;PostID=47814</wfw:commentRss><description>Sorry, my bad...&lt;br&gt;:)&lt;br&gt;</description></item><item><title>Απ: Class member by name</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/47811.aspx</link><pubDate>Thu, 22 Jan 2009 18:02:18 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:47811</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/47811.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=74&amp;PostID=47811</wfw:commentRss><description>&lt;P&gt;gtas, αυτό που λες χρησιμοποιείται αν θέλει κανείς να έχει πρόσβαση στα αντικείμενα μίας λίστας. Ο M1ke όμως ζήτησε να έχει πρόσβαση στα properties ενός αντικειμένου. Κάτι τέτοιο δεν μπορεί να γίνει με enumerators.&lt;/P&gt;</description></item><item><title>Απ: Class member by name</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/47810.aspx</link><pubDate>Thu, 22 Jan 2009 17:31:17 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:47810</guid><dc:creator>Τάσκος Γιώργος</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/47810.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=74&amp;PostID=47810</wfw:commentRss><description>Φίλε M1ke, για να πετύχεις κάτι τέτοιο πρέπει να κάνεις&lt;br&gt;implement δύο interface, το IEnumerable και το IEnumerator&lt;br&gt;ώστε να γίνει iterative η κλάση σου.&lt;br&gt;Δές εδώ, είναι σχετικά εύκολο να το πετύχεις.&lt;br&gt;&lt;br&gt;&lt;a href="http://support.microsoft.com/kb/322022"&gt;http://support.microsoft.com/kb/322022&lt;/a&gt; &lt;br&gt;</description></item><item><title>Απ: Class member by name</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/47809.aspx</link><pubDate>Thu, 22 Jan 2009 17:24:24 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:47809</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/47809.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=74&amp;PostID=47809</wfw:commentRss><description>&lt;P&gt;Καταρχήν, αυτό που ζητάς γίνεται ήδη με το Linq to SQL, το Entity Framework ή κάποιο άλλο ORM. Από εκεί και πέρα, μπορείς να χρησιμοποιήσεις Reflection για να βρεις τα members ενός τύπου, τα attributes που περιέχουν κλπ. Αυτο γίνεται με την Type.GetProperties, Type.GetMembers και τις άλλες μεθόδους του Type class. H GetProperties θα σου επιστρέψει μία λίστα από PropertyInfo αντικείμενα τα οποία αντιπροσωπεύουν τα properties ενός τύπου. Την τιμή του Property τη βρίσκεις με την PropertyInfo.GetValue και τη θέτεις με την PropertyInfo.SetValue.&lt;/P&gt;
&lt;P&gt;Έχε υπόψη όμως ότι το Reflection αργεί. Είναι πολύ γρηγορότερο να δουλεύεις με ένα property απευθείας παρά μέσω Reflection. Γι αυτό και τα ORMs δεν χρησιμοποιούν reflection αλλά mappings ή code generation για να δημιουργήσουν κλάσεις παρά να τις γεμίσουν από ένα πίνακα. &lt;/P&gt;</description></item><item><title>Class member by name</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/47808.aspx</link><pubDate>Thu, 22 Jan 2009 16:26:38 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:47808</guid><dc:creator>M1ke</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/47808.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=74&amp;PostID=47808</wfw:commentRss><description>Γειά σε όλους!&lt;br&gt;&lt;br&gt;Πολλές φορές έχει τύχει να χρειάζομαι ένα enumerator με όλα τα πεδία της class, ώστε μετά να την χειριστώ όπως τα columns ενός dataset&lt;br&gt;&lt;br&gt;&lt;span style="color:Black;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;class&lt;/span&gt; CustomClass&lt;br&gt;{&lt;br&gt;&lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&amp;nbsp;&amp;nbsp; int&lt;/span&gt; x,y;&lt;br&gt;&lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&amp;nbsp;&amp;nbsp; string&lt;/span&gt; s,v;&lt;br&gt;}&lt;/span&gt;&lt;br&gt;&lt;br&gt;...&lt;br&gt;&lt;br&gt;&lt;span style="color:Black;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;CustomClass custom &lt;span style="color:Red;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; &lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;new&lt;/span&gt; CustomClass();&lt;br&gt;&lt;br&gt;&lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;foreach&lt;/span&gt; (&lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;object&lt;/span&gt; o &lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;in&lt;/span&gt; custom.&amp;lt;IDoNotKnowHow&amp;gt;)&lt;br&gt;{&lt;br&gt;   ...Do something&lt;br&gt;}&lt;/span&gt;&lt;br&gt;&lt;br&gt;ή &lt;br&gt;&lt;br&gt;&lt;span style="color:Black;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;custom[&lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"x"&lt;/span&gt;] &lt;span style="color:Red;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; 5;&lt;/span&gt;&lt;br&gt;&lt;br&gt;Υπάρχει τρόπος να γίνει κάτι τέτοιο? Θα μου φαινόταν αρκετά χρήσιμο όταν αρχικοποιώ ένα instance από μία βάση, ώστε να τρέχω ένα loop που 8α παίρνω το όνομα του εκάστοτε column του datatable και θα αναθέτω την τιμή του στο αντίστοιχο member της κλάσης.&lt;br&gt;</description></item></channel></rss>