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

Respuestas a la pregunta(2)

Su respuesta a la pregunta