@LaTino
Danke nochmals für die Hilfe, hab das ganze mit SVCUTIL aus SDK v8.1.A zum laufen gebracht.
Danke für den Hinweis, kann ich das irgendwie anpassen das eventuell der erste <TAG> nicht im BODY angezeigt wird - hab mich da am weekend ein wenig beschäftigt damit aber nichts passendes gefunden?
Ich versteh aber nicht warum der code welcher von svcutil generiert wird (xsd & wsdl), nicht ident ist mit den Ergebnis welches erwartet wird.
auf jeden fall danke an alle für die hilfe 👍
finde den Übeltäter aber nicht 😭 - such ja auch schon 2 tage nach diesen.....
Hab jetzt mal ein komplett abgespeckte version des ganzen projects gepackt - eventuell helft das mir zu helfen. 😁
wünsche aber allen noch ein nice weekend - und nochmals danke für die hilfe
Danke gleich mal an alle.....
Der ganze Namespace wurde ja von svcutil.exe erstellt - und ich kann diese maximal auf 500 Zeilen reduzieren.
Hier aber mal nur die CouponActivationRequest Klasse daraus
public partial class CouponActivationRequest
{
private CouponActivationRequestCouponActivations couponActivationsField;
private string versionField;
private string requestIdField;
private Command commandField;
private string compensationForRequestField;
[System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
public CouponActivationRequestCouponActivations couponActivations
{
get
{
return this.couponActivationsField;
}
set
{
this.couponActivationsField = value;
}
}
[System.Xml.Serialization.XmlAttributeAttribute()]
public string version
{
get
{
return this.versionField;
}
set
{
this.versionField = value;
}
}
[System.Xml.Serialization.XmlAttributeAttribute(DataType = "positiveInteger")]
public string requestId
{
get
{
return this.requestIdField;
}
set
{
this.requestIdField = value;
}
}
[System.Xml.Serialization.XmlAttributeAttribute()]
public Command command
{
get
{
return this.commandField;
}
set
{
this.commandField = value;
}
}
[System.Xml.Serialization.XmlAttributeAttribute(DataType = "positiveInteger")]
public string compensationForRequest
{
get
{
return this.compensationForRequestField;
}
set
{
this.compensationForRequestField = value;
}
}
}
Hallo,
Ich arbeite zur Zeit an einer Schnittstellen Interface, und hab mich hier für c# wcf entschieden.
Es funktioniert so ziemlich alles, bis auf einen Request den ich zusammen bauen muss, mir aber dies nicht so gelingt wie er aussehen muss. Habe nun nach 2 Tagen googlen keine Ideen mehr und suche nun bei Profis um Hilfe.
Meine Frage ist wie kann ich den ersten <tem:CouponActivationRequest> unterdrücken, bzw. warum gibt es diesen Eintrag im root des bodys (Name der Funktion???).
<body>
<tem:CouponActivationRequest>
<tem:CouponActivationRequest version="1.01.000" requestId="3002" command="activation">
So sieht der Request mit meinem Code aus...... (SOAP UI)
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/" xmlns:typ="http://www.loyaltypartner.com/lm/core/couponing/couponactivation/types">
<soapenv:Header/>
<soapenv:Body>
<tem:CouponActivationRequest>
<tem:CouponActivationRequest version="1.01.000" requestId="3002" command="activation">
<typ:couponActivations>
<couponActivation>
<couponIdentifier>100000</couponIdentifier>
<groupingId>6700</groupingId>
<activationChannel>O</activationChannel>
<validUntil>2011-11-12T00:00:00.000+01:00</validUntil>
<cards>
<mainCardNumber>3083421064757539</mainCardNumber>
<cardNumber>?</cardNumber>
</cards>
<targetgroupId>1516</targetgroupId>
<marketingCode>OC32500009</marketingCode>
<barcode>?</barcode>
<validFrom>2011-11-12T00:00:00.000+01:00</validFrom>
<activatedAt>2011-11-12T00:00:00.000+01:00</activatedAt>
</couponActivation>
</typ:couponActivations>
</tem:CouponActivationRequest>
</tem:CouponActivationRequest>
</soapenv:Body>
</soapenv:Envelope>
So sollte das ganze aussehen......
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<ns2:couponActivationRequest xmlns:ns2="http://www.loyaltypartner.com/lm/core/couponing/couponactivation/types" requestId="3002" command="activation" version="1.01.000">
<couponActivations>
<couponActivation>
<couponIdentifier>100000</couponIdentifier>
<groupingId>6700</groupingId>
<activationChannel>O</activationChannel>
<validUntil>2011-11-12T00:00:00.000+01:00</validUntil>
<cards>
<mainCardNumber>3083421064757539</mainCardNumber>
</cards>
<targetgroupId>1516</targetgroupId>
<marketingCode>OC32500009</marketingCode>
<validFrom>2011-11-12T00:00:00.000+01:00</validFrom>
<activatedAt>2011-11-12T00:00:00.000+01:00</ activatedAt >
</couponActivation>
</couponActivations>
</ns2:couponActivationRequest>
</S:Body>
</S:Envelope>
Der C# Code dazu...
**IService.cs
using System.ServiceModel;
using MTHPayback_WSDL;
namespace MTHPayback
{
[ServiceContract]
public interface IService
{
[OperationContract]
[XmlSerializerFormat]
CouponActivationResponse CouponActivationRequest(CouponActivationRequest CouponActivationRequest);
}
}
**Service.svc.cs
using System;
using MTHPayback_WSDL;
namespace MTHPayback
{
public class Service : IService
{
public CouponActivationResponse CouponActivationRequest(CouponActivationRequest pbReq)
{
CouponActivationResponse pbResp = new CouponActivationResponse();
pbResp.result = new CouponActivationResult();
pbResp.requestId = pbReq.requestId;
pbResp.version = pbReq.version;
try
{
}
catch (Exception ex)
{
pbResp.result.resultCode = CouponActivationResultCode.InternalError;
}
finally
{
}
return (pbResp);
}
}
}
- knapp 700(!) Zeilen Code entfernt - Coffeebean