Al pasar una matriz de cadenas de VB6 a C # .net
¿Cómo pasar una matriz de cadenas VB6 [Supongamos que s = Array ("a", "b", "c", "d")] a C # .Net a través de Interoperabilidad COM?
Traté de implementar pasar C # string array a VB y VB string array a C # como a continuación C # -> VB funciona bien pero de otra manera (VB => C #) dando un error de compilación llamado"Función o interfaz marcada como restringida, o la función utiliza un tipo de automatización no compatible con Visual Basic" . Mi codigo abajo
C#
public interface ITest
{
string[] GetArray();
void SetArray(string[] arrayVal );
}
public class Test : ITest
{
string[] ITest.GetArray() { //Working fine
string[] stringArray = { "red ", "yellow", "blue" };
return stringArray;
}
}
void ITest.SetArray(string[] arrayVal) //Giving an issue
{
string[] stringArray1 = arrayVal;
}
VB
Dim str As Variant
Debug.Print ".NET server returned: "
For Each str In dotNETServer.GetArray 'dotNETServer=TestServer.Test
Debug.Print str
Next
Dim arr(3) As String
arr(1) = "Pahee"
arr(2) = "Tharani"
arr(3) = "Rathan"
dotNETServer.SetArray (arr) 'This one causing the compile error which I mentioned earlier
Actualización: ::::::
Necesitamos pasar la matriz como referencia en C #. Cambiarlo en la interfaz y el método
void SetArray(ref string[] arrayVal ); //ref added