Nested Classes as generated by .Net Wrapper

I have run into a slight problem where I have defined a group array in my Natural progam on the server side.
In Visual Studio 2008 using VB.Net it will not allow me to address the class DetailData. I can however see OutputParm.LineCntA. but not OutputParm.DetailData

Any suggestions will be appreciated.

The code is as follows:
1 MESSAGE_DATA Out /* out
2 PROGRAM_ID (A8)
2 DATE (A10)
2 TIME (A10)
2 USERDATA (A64) /* user defined
2 RETURN_CODE (A1)
2 MSG_NR (N4)
2 MESSAGE (A65)
/* Message Information
1 INPUT_PARM
2 NAME (A65)
2 LIC_NO (A8)
*
1 OUTPUT_PARM
2 LINE_CNT_A (A3)
2 DETAIL_DATA (/1:50)
3 NAME_TP (A8)
3 NAME (A65)
3 LIC_NO_A (A8)
3 CITY (A25)
3 STATUS (A10)
3 LAST_NAME (A65)

The .Net Wrapper generates the following Class with nested a nested Class.
#region Groups for LIBRARY ‘LBRPCLIC’, PROGRAM ‘N69000L0’

public class N69000l0
{
public class MessageData
{
[SendAs(IdlType.A, Length=8f, Id=0, Trim=false)]public StringBuilder programId ;
[SendAs(IdlType.A, Length=10f, Id=1, Trim=false)]public StringBuilder date ;
[SendAs(IdlType.A, Length=10f, Id=2, Trim=false)]public StringBuilder time ;
[SendAs(IdlType.A, Length=64f, Id=3, Trim=false)]public StringBuilder userdata ;
[SendAs(IdlType.A, Length=1f, Id=4, Trim=false)]public StringBuilder returnCode ;
[SendAs(IdlType.N, preDecimal=4, postDecimal=0, Id=5)]public decimal msgNr;
[SendAs(IdlType.A, Length=65f, Id=6, Trim=false)]public StringBuilder message ;
}
public class InputParm
{
[SendAs(IdlType.A, Length=65f, Id=0, Trim=false)]public StringBuilder name ;
[SendAs(IdlType.A, Length=8f, Id=1, Trim=false)]public StringBuilder licNo ;
}
public class OutputParm
{
[SendAs(IdlType.A, Length=3f, Id=0, Trim=false)]public StringBuilder lineCntA ;
[SendAs(IdlType.Group, Id=1, Dim=50f)]public DetailData[] detailData = (DetailData[])Construction.GroupArray(typeof(DetailData), 50 , 0 , 0 );
public class DetailData
{
[SendAs(IdlType.A, Length=8f, Id=0, Trim=false)]public StringBuilder nameTp ;
[SendAs(IdlType.A, Length=65f, Id=1, Trim=false)]public StringBuilder name ;
[SendAs(IdlType.A, Length=8f, Id=2, Trim=false)]public StringBuilder licNoA ;
[SendAs(IdlType.A, Length=25f, Id=3, Trim=false)]public StringBuilder city ;
[SendAs(IdlType.A, Length=10f, Id=4, Trim=false)]public StringBuilder status ;
[SendAs(IdlType.A, Length=65f, Id=5, Trim=false)]public StringBuilder lastName ;
}
}
}

Thanks
Hennie.

+1 916 600 0789

Hi Hennie,

there are some special considerations with nested classes and VB.NET which is not case-sensitive and thus can run into name conflicts. To avoid this you can define a ‘Class name prefix for inner classes’ in the properties of the IDL file.

Regards, Dietmar