public void InvokeAsync(UPnPService S, string Action, byte[] InArgs, string Caller, int Handle) { UPnPAction A = S.GetAction(Action); ArrayList AList = new ArrayList(); foreach(UPnPArgument arg in A.ArgumentList) { if(arg.IsReturnValue==false && arg.Direction=="out") { UPnPArgument _arg = (UPnPArgument)arg.Clone(); _arg.DataValue = UPnPService.CreateObjectInstance(arg.RelatedStateVar.GetNetType(),null); AList.Add(_arg); } } UPnPArgument[] Temp = ParseArguments(InArgs); foreach(UPnPArgument _arg in Temp) { _arg.DataType = A.GetArg(_arg.Name).RelatedStateVar.ValueType; _arg.Direction = "in"; AList.Add(_arg); } UPnPArgument[] Arguments = (UPnPArgument[])AList.ToArray(typeof(UPnPArgument)); (new UPnPDebugObject(S)).SetProperty("ValidationMode",false); S.InvokeAsync(Action,Arguments,new Object[2]{Caller,Handle},A_ICB,A_IECB); }