Exemplo n.º 1
0
        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.º 2
0
        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");
        }
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);
        }
Exemplo n.º 4
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);
        }