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