Exemplo n.º 1
0
 public object MapToIdlAbstractValueType(Type clsType) {                       
     omg.org.CORBA.TypeCode baseTypeCode;
     if (clsType.BaseType.Equals(ReflectionHelper.ObjectType) || 
         clsType.BaseType.Equals(typeof(System.ComponentModel.MarshalByValueComponent))) {
         baseTypeCode = new NullTC();
     } else {
         baseTypeCode = CreateOrGetTypeCodeForType(clsType.BaseType, 
                            AttributeExtCollection.EmptyCollection);
     }
     ValueTypeTC result = new ValueTypeTC();            
     RegisterCreatedTypeCodeForType(clsType, AttributeExtCollection.EmptyCollection,
                                    result);
     result.Initalize(Repository.GetRepositoryID(clsType),
                      IdlNaming.ReverseIdlToClsNameMapping(clsType.Name), 
                      new ValueMember[0],
                      baseTypeCode, ABSTRACT_VALUE_MOD);
     return result;
 }
        public void TestGenerateSpecialNameRepId()
        {
            string name = "TestGenForTypeCodeType3";
            string typeName = "Ch.Elca.Iiop.Tests." + name;
            string repId = "IDL:Ch/Elca/Iiop/Tests/Special_TestGenForTypeCodeType3:1.0";
            ValueTypeTC vt = new ValueTypeTC(repId,
                                             name, new ValueMember[0],
                                             new NullTC(), 0);

            Type res = m_gen.CreateOrGetType(typeName, vt);
            Assert.NotNull(res);
            Assert.AreEqual(typeName, res.FullName, "type name");
            Assert.AreEqual(repId, Repository.GetRepositoryID(res), "rep id");
        }
Exemplo n.º 3
0
 public object MapToIdlConcreateValueType(Type clsType) {
     omg.org.CORBA.TypeCode baseTypeCode;
     if (clsType.BaseType.Equals(ReflectionHelper.ObjectType) || 
         clsType.BaseType.Equals(typeof(System.ComponentModel.MarshalByValueComponent))) {
         baseTypeCode = new NullTC();
     } else {
         baseTypeCode = CreateOrGetTypeCodeForType(clsType.BaseType, 
                                                   AttributeExtCollection.EmptyCollection);
     }
     ValueTypeTC result = new ValueTypeTC();
     RegisterCreatedTypeCodeForType(clsType, AttributeExtCollection.EmptyCollection,
                                    result);                        
     
     // create the TypeCodes for the members
     FieldInfo[] members = ReflectionHelper.GetAllDeclaredInstanceFieldsOrdered(clsType);
     ValueMember[] valueMembers = new ValueMember[members.Length];
     for (int i = 0; i < members.Length; i++) {
         omg.org.CORBA.TypeCode memberType = CreateOrGetTypeCodeForType(members[i].FieldType, 
                                                 ReflectionHelper.GetCustomAttriutesForField(members[i], 
                                                                                             true));
         short visibility;
         if (members[i].IsPrivate) { 
             visibility = VISIBILITY_PRIVATE; 
         } else { 
             visibility = VISIBILITY_PUBLIC; 
         }
         valueMembers[i] = new ValueMember(members[i].Name, memberType, visibility);
     }
     result.Initalize(Repository.GetRepositoryID(clsType),
                      IdlNaming.ReverseIdlToClsNameMapping(clsType.Name),
                      valueMembers, baseTypeCode, CONCRETE_VALUE_MOD);
     return result;
 }
        public void TestGenerate()
        {
            string name = "TestGenForTypeCodeType";
            string typeName = "Ch.Elca.Iiop.Tests." + name;
            string repId = "IDL:Ch/Elca/Iiop/Tests/TestGenForTypeCodeType:1.0";
            ValueMember m1 = new ValueMember("M1", new LongTC(), 0);
            ValueTypeTC vt = new ValueTypeTC(repId,
                                             name, new ValueMember[] { m1 },
                                             new NullTC(), 0);

            Type res = m_gen.CreateOrGetType(typeName, vt);
            Assert.NotNull(res);
            Assert.AreEqual(typeName, res.FullName, "type name");
            Assert.AreEqual(repId, Repository.GetRepositoryID(res), "rep id");
            Assert.NotNull(res.GetField(m1.name,
                                                 BindingFlags.Public | BindingFlags.Instance), "field M1");
            Assert.IsTrue(res.IsSerializable, "Serializable");
        }