誰かがこのコードをc#からvb.netに変換するのを手伝ってくれることを願っています。私はVBのアプリからC#のアプリに購読情報を公開するためにIISを使用しようとしています。私は、アプリケーションの一部のVBを使用する必要がありますが、他の部分のC#を使用する必要があります。私はこれが理想的ではないことを知っていますが、誰かを助けることができれば、私はそういう立場です。私はそれのほとんどを変換することができますが、私はほとんど手がかりを持っていない最初のビットで立ち往生した。 MSDNがVBサンプルコードを削除してC#コードのみを表示するので、それは可能ではありません。c#サービス参照の使用をvb.Netに変換する
using System;
using System.Collections.Generic;
using System.Linq;
using System.ServiceModel;
using System.Text;
using System.Threading.Tasks;
namespace SeagateServiceClient
{
public class Client : PubSubService.ISampleContractCallback
{
private PubSubService.SampleContractClient client;
public void Subscribe()
{
try
{
InstanceContext site = new InstanceContext(null, new Client());
client = new PubSubService.SampleContractClient(site);
//create a unique callback address so multiple clients can run on one machine
WSDualHttpBinding binding = (WSDualHttpBinding)client.Endpoint.Binding;
string clientcallbackaddress = binding.ClientBaseAddress.AbsoluteUri;
//string clientcallbackaddress = "http://localhost:9000/myClient/";
clientcallbackaddress += Guid.NewGuid().ToString();
binding.ClientBaseAddress = new Uri(clientcallbackaddress);
client.ClientCredentials.Windows.ClientCredential.UserName = @"temp";
client.ClientCredentials.Windows.ClientCredential.Domain = "NN";
client.ClientCredentials.Windows.ClientCredential.Password = "temp";
//Subscribe.
Console.WriteLine("Subscribing");
client.Subscribe();
}
catch(Exception e)
{
Console.WriteLine(e.Message);
Console.WriteLine(e.StackTrace);
}
}
public void UnSubscribe()
{
if(client != null)
{
try
{
Console.WriteLine("Unsubscribing");
client.Unsubscribe();
client.Close();
}
catch (Exception e)
{
Console.WriteLine(e.Message);
Console.WriteLine(e.StackTrace);
}
finally
{
if (client != null && (client.State.ToString() != "Closed" && client.State.ToString() != "Faulted"))
client.Close();
}
}
}
public void PushPriceChange(string item, double price, double change)
{
try
{
Console.WriteLine("PriceChangePushed(item {0}, price {1}, change {2})", item, price.ToString("C"), change);
client.PublishPriceChange("test", 22, 234);
}
catch (Exception e)
{
Console.WriteLine(e.Message);
Console.WriteLine(e.StackTrace);
}
}
public void PriceChange(string item, double price, double change)
{
Console.WriteLine("PriceChange(item {0}, price {1}, change {2})", item, price.ToString("C"), change);
}
}
}
VB.netの試み:私の頭の上オフ
Imports System.Linq
Imports System
Imports System.Collections.Generic
Imports System.Text
Imports System.ServiceModel
Public Module PublishData
Public Sub Test()
System.Diagnostics.Debug.WriteLine("This is a test")
End Sub
Public client As PubSubService.SampleContractClient
Public Sub Subscribe()
Try
InstanceContext site = New InstanceContext(null, New Client())
client = New PubSubService.SampleContractClient(site)
'create a unique callback address so multiple clients can run on one machine
WSDualHttpBinding binding = (WSDualHttpBinding)client.Endpoint.Binding
String clientcallbackaddress = binding.ClientBaseAddress.AbsoluteUri
'string clientcallbackaddress = "http://localhost:9000/myClient/"
clientcallbackaddress += Guid.NewGuid().ToString()
binding.ClientBaseAddress = New Uri(clientcallbackaddress
client.ClientCredentials.Windows.ClientCredential.UserName = @"temp"
client.ClientCredentials.Windows.ClientCredential.Domain = "NN"
client.ClientCredentials.Windows.ClientCredential.Password = "temp"
'Subscribe.
Console.WriteLine("Subscribing")
client.Subscribe()
Catch ex As Exception
Console.WriteLine(ex.Message)
Console.WriteLine(ex.StackTrace)
End Try
End Sub
Public Sub UnSubscribe()
If (Not String.IsNullOrEmpty(client)) Then
Try
System.Diagnostics.Debug.WriteLine("Unsubscribing")
client.Unsubscribe()
client.Close()
Catch ex As Exception
System.Diagnostics.Debug.WriteLine(ex.Message)
System.Diagnostics.Debug.WriteLine(ex.StackTrace)
Finally
If ((Not String.IsNullOrEmpty(client)) And (client.State.ToString() IsNot "Closed" And client.State.ToString() IsNot "Faulted")) Then
client.Close()
End If
End Try
End If
End Sub
Public Sub PushPriceChange(item As String, price As Double, change As Double)
Try
Console.WriteLine("PriceChangePushed(item {0}, price {1}, change {2})", item, price.ToString("C"), change)
client.PublishPriceChange("test", 22, 234)
Catch ex As Exception
Console.WriteLine(ex.Message)
Console.WriteLine(ex.StackTrace)
End Try
End Sub
Public Sub PriceChange(item As String, price As Double, change As Double)
Console.WriteLine("PriceChange(item {0}, price {1}, change {2})", item, price.ToString("C"), change);
End Sub
End Module
するためにC#に変換することができますオンラインサービスがたくさんありますVBから、そしてVBからC#への方が簡単な理由は厳密な型付きです –