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:
CSharp.net@glengamoi.com
An-/Abmeldung und Suchfunktion unter:
http://www.glengamoi.com/mailman/listinfo/csharp.net

Antwort per Email an