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