|
ms
newsgroups
|
|||||||||||||||||||||||
|
|||||||||||||||||||||||
Cast my custom class into System.StringHow can I allow someone to cast my C# class into System.String? Is it
possible in C#? In C++ I used "operator" keyword to mark C++ member function. John Smith wrote:
> How can I allow someone to cast my C# class into System.String? Is it You can create an explicit (or even implicit) conversion operator in> possible in C#? In C++ I used "operator" keyword to mark C++ member > function. C#. See http://msdn2.microsoft.com/en-us/library/85w54y0a(VS.80).aspx for examples. Personally, I'd just override ToString and get people to call that instead, but it's up to you. Jon Thank you very much for your response.
I'll ask you and others one more question which might be a little a bit off the topic, but I have no other chice, since I have asked this on many newsgroups and haven't received good answer. This is my case: I'm writing webervice client using .Net 2.0. I have this class: [System.Web.Services.WebServiceBindingAttribute(Name = "ValidateBinding", Namespace = "http://example.org/Avtentikacija")] public class MyWebService : SoapHttpClientProtocol { [System.Web.Services.Protocols.SoapDocumentMethodAttribute("", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Bare)] public XmlDocument validate(string url, [System.Xml.Serialization.XmlElementAttribute(Namespace = "http://www.example.org/PodpisaniDokument")] XmlDocument xmlDocument) { this.Url = url; object[] results = null; try { // ERROR occur at this line :( results = this.Invoke("validate", new object[] { xmlDocument }); } catch (Exception ex) { MessageBox.Show(ex.ToString()); return null; } return ((XmlDocument)(results[0])); } } and I call it like this: XmlDocument xmlDocument = new XmlDocument(); xmlDocument.PreserveWhitespace = true; xmlDocument.Load("C:\\request.xml"); MyWebService web = new MyWebService(); xmlDocument = web.validate("http://localhost:8080/MyWeb/services/Avtentikacija", xmlDocument); if (xmlDocument != null) xmlDocument.Save("C:\\response.xml"); And I got this error message: System.InvalidOperationException: There was an error generating the XML document. ---> System.InvalidCastException: Unable to cast object of type 'System.Xml.XmlDocument' to type 'System.String'. at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriterMyWebService.Write1_validate(Object[] p) at Microsoft.Xml.Serialization.GeneratedAssembly.ArrayOfObjectSerializer.Serialize(Object objectToSerialize, XmlSerializationWriter writer) at System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter, Object o, XmlSerializerNamespaces namespaces, String encodingStyle, String id) --- End of inner exception stack trace --- at System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter, Object o, XmlSerializerNamespaces namespaces, String encodingStyle, String id) at System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter, Object o, XmlSerializerNamespaces namespaces, String encodingStyle) at System.Web.Services.Protocols.SoapHttpClientProtocol.Serialize(SoapClientMessage message) at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters) at MyWeb.MyWebService.validate(String url, XmlDocument xmlDocument) in C:\Documents and Settings\I\My Documents\Visual Studio 2005\Projects\MyWeb\MyWeb\Form1.cs:line 152 Why? :( Interesting is that the same code (Invloke() method) works fine for the auto generated class from WSDL file by Visual Studio 2005. I've searched for "string" operator, but there isn't any. I have also displayed ToString() return value and it returns something like "SomeNamespace.SomeAutoGeneratedClass". I was expection to see whole XML. I don't know how .Net code casts those auto generated classes??? This is peace of auto generated class: [System.Xml.Serialization.XmlRoot("PodpisaniDokument", Namespace="http://www.example.org/PodpisaniDokument")] [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.42")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.example.org/PodpisaniDokument")] public partial class PodpisaniDokumentTip { } John Smith wrote:
> Thank you very much for your response. Generally creating a new topic for a new question is more advisable,> > I'll ask you and others one more question which might be a little a bit off > the topic, but I have no other chice, since I have asked this on many > newsgroups and haven't received good answer. This is my case: but anyway... Show quoteHide quote > I'm writing webervice client using .Net 2.0. I have this class: Don't you mean> public class MyWebService : SoapHttpClientProtocol > { > public XmlDocument validate(string url, > [System.Xml.Serialization.XmlElementAttribute(Namespace = > "http://www.example.org/PodpisaniDokument")] XmlDocument xmlDocument) > { > this.Url = url; > object[] results = null; > try > { > // ERROR occur at this line :( > results = this.Invoke("validate", new object[] { xmlDocument }); results = this.Invoke("validate", new object[] { url, xmlDocument } ); ? -- Larry Lard Replies to group please Thank you very much for your response. :> You were very close.
> Don't you mean Although VS2005 auto generated classes doesn't invoke web service with 2 > > results = this.Invoke("validate", new object[] { url, xmlDocument } ); arguments, I have tried your example. The only problem is that it adds <url></url> tags in my <soap:body> request and I don't want this, because server can't parse it. Is there any way to remoce <url></url> tags?
Other interesting topics
When, why and where should a struct be used?
Problem assigning event handler to object.event XML Querying .....??? Retrieving the COM class factory for a component failed moving selected item New as applied to arrays Reading from .DBF in DBaseIII unmanaged structs in struct with c# Access the "global" focused control from C# app-. DataSet to Crystal report? |
|||||||||||||||||||||||