2013-10-15 2 views
0

У меня есть код под VB.NET, он работает хорошо. Мне нужно преобразовать его в C#. Он не может быть скомпилирован, потому что complier не знает о методах прокси. Не могли бы вы сообщить мне, как я могу преобразовать paramater (Byref proxy as Object) в C#. Огромное спасибо.Преобразование параметра объекта из VB.NET в C#

Public Shared Function SetupProxy(ByRef proxy As Object) As Boolean 
    Dim token As New UsernameToken(Var.sHTNGUsername, Var.sHTNGPassword, PasswordOption.SendPlainText) 
    Dim clientPolicy As New Policy 

    clientPolicy.Assertions.Add(New UsernameOverTransportAssertion()) 

    proxy.SetPolicy(clientPolicy) 
    proxy.SetClientCredential(token) 

    Return True 
End Function 
+0

'ByRef' просто' ref' в C# – Silvermind

+1

фрагмент кода не показывает, какой тип "прокси" есть. Нам нужно указать его точный тип в C#, чтобы использовать его методы и применить его к нему как « proxyCasted = proxy as » –

+0

'ref object proxy' вот он –

ответ

0

Для вызова динамически в C#, вы можете использовать отражение:

public static bool SetupProxy(ref object proxy) 
{ 
    UsernameToken token = new UsernameToken(Var.sHTNGUsername, Var.sHTNGPassword, PasswordOption.SendPlainText); 
    Policy clientPolicy = new ClientPolicy(); 

    clientPolicy.Assertions.Add(new UsernameOverTransportAssertion()); 

    proxy.GetType().InvokeMember("SetProxy", BindingFlags.InvokeMethod, null, proxy, new object[] { clientPolicy }); 
    proxy.GetType().InvokeMember("SetClientCredential", BindingFlags.InvokeMethod, null, proxy, new object[] { token }); 
    return true; 
} 
Смежные вопросы