IDL Complex Type
fixed The CORBA fixed is represented by a non CORBA standard class - Org.Omg.CORBA.Fixed.  The typedef definition is mapped to a C#'s helper class as follow:
// CORBA IDL
module demo
{
   module grid 
   { 
      interface MyServer
      {
         typedef fixed<5,2> fixedT;
      };
   };
};
// C# classes

e.g :
fixedTHelper
public class fixedTHelper
{
   ///
   /// Insert fixedT into an any
   /// @param a an any
   /// @param t fixedT value
   ///
   public static void Insert(Org.Omg.CORBA.Any a, Org.Omg.CORBA.Fixed t )
   {
      a.Type(Type());
      Write(a.Create_Output_Stream(),t);
   }

   ///
   /// Extract fixedT from an any
   /// @param a an any
   /// @return the extracted fixedT value
   ///
   public static Org.Omg.CORBA.Fixed Extract(Org.Omg.CORBA.Any a)
   {
      if (!a.Type().Equal(Type()))
         throw new Org.Omg.CORBA.MARSHAL();
      return Read(a.Create_Input_Stream());
   }

   ///
   /// Internal TypeCode value
   ///
   private static Org.Omg.CORBA.TypeCode _tc = null;

   ///
   /// Return the fixedT TypeCode
   /// @return a TypeCode
   ///
   public static Org.Omg.CORBA.TypeCode Type()
   {
      if (_tc == null)
      {
         Org.Omg.CORBA.ORB orb = Org.Omg.CORBA.ORB.Init();
         _tc = orb.Create_Alias_TC(Id(),"fixedT",orb.Create_Fixed_TC( (ushort)5, (short)2));
      }
      return _tc;
   }

   ///
   /// Return the fixedT IDL ID
   /// @return an ID
   ///
   public static string Id()
   {
      return _id;
   }

   private static string _id = "IDL:demo/grid/MyServer/fixedT:1.0";

   ///
   /// Read fixedT from a marshalled stream
   /// @param istream the input stream
   /// @return the readed fixedT value
   ///
   public static Org.Omg.CORBA.Fixed Read(Org.Omg.CORBA.Portable.InputStream istream)
   {
      Org.Omg.CORBA.Fixed _f = istream.Read_Fixed();
      return _f.MovePointLeft(2);
   }

   ///
   /// Write fixedT into a marshalled stream
   /// @param ostream the output stream
   /// @param value fixedT value
   ///
   public static void Write(Org.Omg.CORBA.Portable.OutputStream ostream, Org.Omg.CORBA.Fixed value)
   {
      if (value.scale != 2)
         throw new Org.Omg.CORBA.DATA_CONVERSION();
      ostream.Write_Fixed(value);
   }
}