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"); }
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"); }