WCF Service Generated Proxy Class Exposing Function As ByRef Sub
May 23, 2011
I have a WCF Service exposing a single contract and operation:
<ServiceContract(Namespace:="ImageSystem")> _
Public Interface IUploadService
<OperationContract()> _
[Code].....
This subsequently leads to stream casting issues, because the generated function allows me to pass a memory stream as an input (which works correctly when passed through to the service), but instead of passing me back a new stream for the response, it attempts to cast the MessageBodyStream received from the service into my memory stream.
This is, in some ways similar to other posts but as you can see, there are no enums involved in my contracts - presence of Enums caused strange proxy class generation is marked as the answer in the similar post.
Is there anywhere I configure the proxy behaviour to use the contracts I've specified? Clearly I'm within a dev/test environment currently, but when this eventually goes to production it will be memory and file streams passed to the service, and the returned stream can be in any format to be honest, I intend to treat it as the abstract stream class. The only way round this I can see right now is to change my in stream to be the same as the anticipated out stream, but surely there is a better way?
In the pseudo code below, if I have two classes and I want one class to be initialized in the other class without the name having to be different, how would I accomplish this?
'==Car.vb== Public Class Car Public Model as New Car.Model()
[Code]...
Is there a better way of doing this so I get the result I want for my usage code?
'==ASPX page== Dim c as New Car() c.Model = Car.Model.Types.BMW
I have a supporting GridColumn Class that resides in the same class library project as my GridBox usercontrol.It is used in a list of GridColumns as a property.[code]In the Load event of my form I would like to use the .Add method of the List(Of GridColumn) to add columns to the usercontrol.[code]It will not work though because it cannot find the GridColumn class.If I use: "Imports <My Class Library Name>" it works, but I would like it to work without having to do so.Standard controls do this all the time.Am I putting the supporting class in the wrong place?Is there a modifier I that will expose the class when the usercontrol is dropped on a form?As a work around I created a method that adds a column but I would like to know in any case.
I have some classes, BsfciFile and StudyFlashCard. Bsfci is the extension to which I save my set of flashcards in an INI format. I am currently working to transform my code from using Windows API calls to access the INI to using a IniFile class that I found on the internet. I would like the BsfciFile to have a Array of StudyFlashCard objects, but I would like the StudyFlashCard class to use the IniFile class object contained in the BsfciFile class. I can pass the IniFile from the BsfciFile class to the constructor for the StudyFlashCard class, but I want it to modify the same IniFile as the BsfciFile class has later on.
Web Service A - Called directly by Win32 App, and various other web applications
Web Service B - Called directly by same Win32 App and a different set of other Web Applications
I'm working on adding a reference to B into A, so that we can use the functionality B provides without rewriting/reintegrating that code manually into A. I have a develop copy of A on my PC that I'm working with, and am calling a test copy of B on a remote server (the test server is accessed over the internet at our hosting provider)I believe to have my code ready for testing, but every time I go to test it on my local copy, I get the following error.No connection could be made because the target machine actively refused it 10.1.X.XX:8080
at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress) at System.Net.Sockets.Socket.InternalConnect(EndPoint remoteEP)
[code]....
It fails on the call to oZip.GetCities() with the above error. The IP in the error message does not in any way indicate it's made it out of our local network, it's a 10.* private IP, whereas the test server has a valid live publicly accessible IP.
I need to add functionality to my web service calls so object translation and automatic retries are done and abstracted away.I would usually override the base class to add the extra functionality, but as the proxy methods aren't over-ridable I can't keep the method names the same. The only other option I can think of to do it this way is to use the 'Shadows' keyword to achieve what I want.What other methods do people use to add functionality to their web service proxy classes without modifying the generated classes?
When I add a service reference to my VB.Net project all of the properties of type DateTime get changed to type Date. The project is ASP.Net using framework 4.0. The web service being referenced is C# framework 4.0. How can I keep this from happening?
Can a function return a value byref instead of the default byval? That is to say, allow me to directly edit the variable that it is retrieving instead of just giving me a copy of that variable.Right now I'm trying to write a function that will return, based on what the user has selected through a combobox, a particular setting (eg. My.Settings.somethingHere). I then want to be able to edit the setting directly through just calling the function. Is that at all possible?
I have a WCF Service, I won't waste anyone's time with copy/pasting a basic implementation here, just imagine it as being the standard "Echo" example you see scattered around MSDN. Let's say I host the Service Library using IIS / a web app. Let's also say I publish the website to varying environments, local, shared dev server, varying test servers, and of course varying live environments. We'll also assume that the WCF gods smiled down upon us and the deployments went without a hitch.
Now I want to write an app (lets say WPF app for some clarity). When the app starts, I want a drop down listing all the available environments. I don't mind hard-coding or supplying (by means of a config file) those environments, but kudos points for linking any articles showing LAN discovery of deployed WCF services?
When the user has selected their chosen environment, I want the app to be able to call a method on the service (in the correct environment). Now I could do this with a big select case/if statement, instantiating the appropriate proxy class for the environment selected, calling out using the proxy class, etc. I could even pass the class around from method to method as an object and then use select case/if statements alongside TryCast/DirectCast to ascertain which environment the provided proxy class belongs to.
I'm bordering on the idea of selecting an environment (none in particular, just one of them) and on the assumption that all deployments/environments have identical code, instantiate the proxy client with the endpoint details of my chosen environment. I lose a form of type safety, but is that ok? Is that the done way?
Invoking my method using the built in VS web service test harness works fine. I created another project, in another solution, to test consuming the web service. I added a web reference to my project and set it so I could reference my web service by using "localWS". Then in the page load event of my consuming class I tried to instantiate an object of my web service:
Dim srv As New localWS.MyWS
But there was no "MyWS" type found. There is however a localWS.MyWSSoapClient class. When I use it I can invoke my web methods. My question is, why can't I create a straight up version of MyWS class? In the tutorials I'v read, and in the book I have, example consuming classes for .NET XML web services can instantiate objects of the web service class they are consuming. As a further test I added a new web form to my web service project and from there I was able to instantiate a MyWS class.
im parsing an xml file using this code Private Function overview2(ByRef filePath As String)Dim reader As XmlTextReader = New XmlTextReader(filePath + "\movieData.xml")
[code]...
it works 80% of the time. What i mean is , i go through each node and when i find the overview node i read the data and send it to a text box. Im doing this for movies on disk. sometimes on certain movies it doesnt find the overview node even though it is there .
I'm currently invoking a function that takes ByRef parameters using Control.Invoke (which I notice specifies the Object parameter array to be ByVal) but the array of parameters I give it isn't updated by the function. Is this possible with VB.Net 2003 or must there be some error in my code?
Public Class userDefClass private b as integer = 1 End class Public Class Form1 private SomeClass as new userDefClass Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) [Code]...
I found similar forum thread [URL], but he don't have answers. How I can conncect | send | recive data using tcp connection with specific internet service (not web).
I have 2 arrays that are generated through a function as follows:
Dim alstCoordinatorID As ArrayList = g_alStripAllOneType(txtCoordinator.Text, "<CoordinatorID>", "</CoordinatorID>") For iCount = 0 To alstCoordinatorID.Count - 1
[Code]....
So basically theres a list box of co-ordinator IDs and a list box of the positions they are in. On another form there is a combo box with the list of ID's that is transferred from the list box on the processing form. I want to display the Position of the Co-ordinator when their ID is selected. How do I match the positions up so when an ID is selected in the combo box their position will appear?
I am a complete Newbie to VB.NET and am migrating up from VB4, so please forgive my mistakes.I am trying to create a proxy class using the WSDL tool included in Visual Basic 2008 Express Edition. I have managed to create the file successfully through WSDL tool, and then am able to add this file as an item in my VB project, however, the file that is added, comes up with 11 errors that I am not familiar with. The command I am using to create the file with WSDL tool is as follows:
wsdl /l:vb /protocol:soap http://direct.racetab.com.au/LiveOdd...gin/Login.wsdl This creates a file called Login, however it creates it, inside the folder that the WSDL tool is located in, which happens to be:Program Files/Microsoft SDKs/Windows/v6.0A/bin I then go to the solution explorer and right click the 'My Project' folder and select ADD>Existing Item, and then navigate it to the file that was just created.
This creates a new item in my solution explorer called Login.vb however, as soon as it is created, I get 9 errors and 2 warnings, that absolutely confuse the hell out of me, and all point to this new item 'Login.vb'
[Code]...
I am doing wrong, what I have forgotten to do, or how I can work to get around this problem? If I need to supply any more information, please let me know what you need to know. Also, if it helps, the only method that I plan to use from the above file is the GETKEY(userName, password) method.
I am trying to make a DLL for a proxy class of a web service as:[code]Do i have to include system.web.services.protocols.dll but i read it is included in system.web.services.dll then why it is complaining about certain members of the class.Here "Service" is my webservice and "proxy service.vb" is proxy class whose dll is need to be created.
I need to be able to serialize a class into a string, and I know of 2 patterns:
1) (normal) Serialization pattern
2) Proxy Serialization pattern
I've read [URL] (the only website in google that talks about the proxy-serialization pattern) and still cant find the advantage or benefit of using this pattern. Could someone explain what exactly is the proxy serialization pattern, or rather exactly what problem does the proxy-serialization pattern solves that the normal-serialization pattern doesn't solve?
I have been trying to generate a Proxy class in VB.NET using a WSDL file for an Apache Axis SOAP Web Service. They have provided me the WSDL file and when I use the WSDL.exe command (In Visual Studio 08) and point it to the local path I get an error. wsdl /language:vb c:Orders.wsdl (I am trying to create a .NET Client that consumes the SOAP Web Service Hosted on Apache Axis 2)
The Error Unable to import binding 'OrdersSoapBinding' from namespace 'urn:company:orders:schemas:OrderTypes:1.00'. -Unable to import operation 'placeOrder' -The element 'urn:company:remtp:schemas:PlaceOrderRequest:1.00:PlaceOrderRequest' is missing If I use the svcutil.exe I also get an error message... svcutil.exe C:Orders.wsdl /t:code /l:VB /o:"C:Orders.VB"
I used wsdl.exe to auto-generate a proxy class, to post SOAP requests to a webservice. Works fine, but I would like to see the exact SOAP request my app is posting.
Is there a way to do this? Maybe a tool I can use?
Create a class named Service. Inside the Service class, declare a class variable named Started. The datatype of this variable is Boolean.Public Class Service Dim started as Boolean End Class Create a class named Server. Inside the Server class, declare a dynamic array that can contain elements of the type Service.(Note: For convenience, both the array and the variable Started can be accessible from a client program that creates an instance of Server and Service respectively)
Create a constructor for the Service class. When the constructor is executed, it will set the value of the class variable Started to True. Create two new classes: WebServer and DatabaseEngine. Both of these classes inherit from the class Service. Inside the Service class, declare a Sub procedure (method) named Terminate. This method should display the following text Service stopping in a message box when executed.This method can be overridden in classes that inherit from Service class.
Inside both the WebServer and DatabaseEngine class, override the method Terminate inherited from their base class Service. Both methods should first call the base class Terminate method. The messages Web server stopping and Database engine stopping should also be displayed in a message box when the Terminate method for the WebServer and DatabaseEngine are called respectively. These messages should only be displayed if the Started variable inherited from their base class is not equal to False.
Inside the Server class, declare a method named Shutdown. This method does not return any value. When executed, it will call the Terminate method for each of the Service instances (if any) in the arrServices array. You should call the Terminate method within a For Each loop that loops through the elements of the arrServices array.
In the Sub Main method, create an instance of the class Server. Set the size of the arrServices array in your Server instance to contain 2 elements. Create first a WebServer instance and then a DatabaseEngine instance into this array. Call the Shutdown method from your Server instance.
I have a class library in VB.NET that does a NET-envelope for an USB device driver.There is only one function of that driver that I could not envelope in a traditional class, but I had to put it in a Windows Service as described here:Sharing a class property (field) between applications.The Windows Service works fine, but I have now two projects for my NET-envelope: the one with the class library, the second with the windows service and I do not like the idea to maintain two distinct projects for the same driver.Is it a good practice (or even if possible) to add a windows service class to a normal class library (without creating its own project as described in the vb tutorial)?I know, in any case I should create a separate setup only for the windows service, but in this way I could have together all the classes that envelope my usb device driver in only one project.
i'm worried about doing this since my changes will be overwritten when the dbml file is auto generated again (as they often are).i'm thinking of doing a partial class and writing out the same properties to annotate them, but worried that it will complain about duplicates, and the reason i can't even experiment brings me to the second part of my questions...
that, the expandable arrow on my dbml file listing is missing, right clicking and selecting "View Code" just displays an empty partial class as below.