public int iMember1 {
set {
TestInterOpModulePINVOKE.TestComplexStruct2_iMember1_set(swigCPtr, value);
}
get {
int ret = TestInterOpModulePINVOKE.TestComplexStruct2_iMember1_get(swigCPtr);
return ret;
}
}
public TestSimpleStruct1 asMember2 {
set {
TestInterOpModulePINVOKE.TestComplexStruct2_asMember2_set(swigCPtr, TestSimpleStruct1.getCPtr(value));
}
get {
IntPtr cPtr = TestInterOpModulePINVOKE.TestComplexStruct2_asMember2_get(swigCPtr);
TestSimpleStruct1 ret = (cPtr == IntPtr.Zero) ? null : new TestSimpleStruct1(cPtr, false);
return ret;
}
}
public TestBigStruct1 asMember3 {
set {
TestInterOpModulePINVOKE.TestComplexStruct2_asMember3_set(swigCPtr, TestBigStruct1.getCPtr(value));
}
get {
IntPtr cPtr = TestInterOpModulePINVOKE.TestComplexStruct2_asMember3_get(swigCPtr);
TestBigStruct1 ret = (cPtr == IntPtr.Zero) ? null : new TestBigStruct1(cPtr, false);
return ret;
}
}
public TestComplexStruct2() : this(TestInterOpModulePINVOKE.new_TestComplexStruct2(), true) {
}
}
So array of struct members are wrapped as a member of struct type instead of a swig-generated type for array access (basic type members do work).
In addition my TestInterOp.i file - just for completeness, it does not set any options: