Hallo Leute,

Bitte nicht gleich schimpfen arbeite erst seit 5 Tagen mit C# und komme aus
der PHP Welt.

Also zu meinen Problem:

Wenn ich das Array _default verwende geht alles Compile ich dies und rufe es
von der Console mit den Parametern
meine.exe Query=s Port=COM1 Handshake=None
geht es nicht warum?
Die Parametern werden auch in dieser Zugewiesen bekomme aber keine Antwort.
Und erst dauert recht lang beim ersten Aufruf mit Parameter �bergabe.
Ich denke es k�nnte an den Rechten liegen.

Wie gesagt ich recht neu!

Code:

namespace IO.Serial.Universal
{
  class Program {
    static void Main(string[] args) {
     string[] _default = { "Port:COM1", "Query:s", "Baudrate=9600",
                        "Handshake=None", "ReadTimeout=5000", "xxxxxxx" };
     bool _ParaTreffer = false;
     object _result;

     if (args.Length == 0) { args = _default; }

       try {
           Assembly assembly = Assembly.LoadFrom(@"Serial.dll");
           Type type = assembly.GetType("SambaTEC.IO.Interface.Serial");
           object objSerial = Activator.CreateInstance(type);
           type.InvokeMember("Serial", BindingFlags.Public | 
BindingFlags.NonPublic
| BindingFlags.Instance | BindingFlags.CreateInstance, null, objSerial, new
Object[] { args[0] });
         PropertyInfo[] properties = type.GetProperties();
         for (int z = 0; z < args.Length; z++ ) {
           string[] splits = args[z].Split(new Char[] { '=', ':' });
           if (splits.Length == 2) {
             _ParaTreffer = false;
             foreach (PropertyInfo property in properties) {
                   if (property.Name == splits[0]) {
                 try {
                    type.InvokeMember(splits[0], BindingFlags.SetProperty,
null, objSerial, new object[] { Convert.ChangeType(splits[1],
property.PropertyType) });
                    _ParaTreffer = true;
                    Console.WriteLine("SetProperty: {0}={1} ({2})",
splits[0], splits[1], property.PropertyType.ToString());
                     }
                 catch(Exception e)
                 {
                    Console.WriteLine("Fehler!: {0}",e.ToString());
                 }
               }
             }
                 if (!_ParaTreffer)
             {
               Console.WriteLine("Der Paramter {0} kann nicht zugewiesen
werden!",args[z]);
             }
           }
             else
           {
             Console.WriteLine("Parameter {0} ist Falsch: {1}", (z + 1),
args[z]);
           }
         }// End For
         type.InvokeMember("send", BindingFlags.Public |
BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.InvokeMethod,
null, objSerial, new Object[] {});
         type.InvokeMember("read", BindingFlags.Public |
BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.InvokeMethod,
null, objSerial, new Object[] { });
         _result = type.InvokeMember("Answer", BindingFlags.GetProperty,
null, objSerial, new object[] {});
         Console.WriteLine("Antwort ={0}", _result.ToString().Trim());
         type.InvokeMember("printDebug", BindingFlags.Public |
BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.InvokeMethod,
null, objSerial, new Object[] { });
       }
         catch (Exception e)
       {
          Console.WriteLine("Die Serial.dll kann nicht geladen werden.\n
System Error: " + e.Message);
       }

    }// END Method Main
  }// END Class
}// End Namespaces

_______________________________________________
CSharp.net Mailingliste, Postings senden an:
[email protected]
An-/Abmeldung und Suchfunktion unter:
http://www.glengamoi.com/mailman/listinfo/csharp.net

Antwort per Email an