![]() |
|
![]() |
|
|
Thread Tools | Display Modes |
|
|
#1 |
|
Newbie
Join Date: Mar 2006
Posts: 1
Rep Power: 0
![]() |
Alright, I have the following perl code:
sub getComplexObj
{
my $_count = 12
my $mike = {
'Count'=> SOAP::Data->new( name => 'Count', value => $_count, type => 'xsd:int' )->attr({ 'xmlns' => $MC_XMLNS }),
'test' => SOAP::Data->new( name => 'test', value => 'test string', type =>'xsd:string' )->attr({ 'xmlns'=> $MC_XMLNS })};
my $foo = SOAP::Data->new(
name => 'return',
value =>bless{ $self ,('compObj')->attr({ 'xsi:type' => typens:'compObj' })}
)->attr({ 'xmlns' => $MC_XMLNS });
return $foo;
}I have a WSDL file and I use that to automatically generate a C# file that uses a SOAP proxy to call this function. When I run my code, I get the following error from .NET: "Failed to access class (CS3: OAP::ComplexObject): syntax error at CS3/SOAP/ComplexObject.pm line 13, near \"typens:\"\nCompilation failed in require at (eval 201) line 3.\n"When I change the $foo object to: my $foo = SOAP::Data->name('return')->value(bless{ $self ,'compObj'})->attr({ 'xmlns' => $MC_XMLNS });I get this error from .NET: "Cannot assign object of type System.Xml.XmlNode[] to an object of type compObj." Just for reference, my C# file looks like this: ///
///
/// foo
///
[System.Web.Services.WebServiceBinding(Name="ComplexObjectPort", Namespace="http://VALIDHTTP")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public class ComplexObj : System.Web.Services.Protocols.SoapHttpClientProtocol {
public ComplexObj() {
this.Url = "http://VALIDHTTP/co.pcgi";
}
[System.Web.Services.Protocols.SoapRpcMethodAttribute("http://VALIDHTTP#getComplexObj", RequestNamespace="http://VALIDHTTP", ResponseNamespace="http://VALIDHTTP")]
[return: System.Xml.Serialization.SoapElement("return")]
public compObj getComplexObj() {
object[] results = this.Invoke("getComplexObj", new object[]);
return ((compObj)(results[0]));
}
public System.IAsyncResult BegingetComplexObj(System.AsyncCallback callback, object asyncState) {
return this.BeginInvoke("getComplexObj", new object[], callback, asyncState);
}
public compObj EndgetComplexObj(System.IAsyncResult asyncResult) {
object[] results = this.EndInvoke(asyncResult);
return ((compObj)(results[0]));
}
}
///
[System.Xml.Serialization.SoapType(Namespace="http://VALID HTTP")]
public class compObj {
///
public int Count;
///
public string test;
}Then in a main file I have: try
{
ComplexObject co = new ComplexObject();
compObj comp = co.getComplexObj();
}
catch( Exception e )
{
richTextBox1.Text+=e.Message + "\n" + e.StackTrace;
}My ultimate goal is simply to call a function from perl that returns a complex object. ANY help would be greatly appreciated. Last edited by allenmpcx; Mar 25th, 2006 at 4:04 PM. |
|
|
|
![]() |
| Bookmarks |
| Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
| Thread Tools | |
| Display Modes | |
|
|