Example #1
0
        private SoapAttributeInfo GetTypeAttributeInfo()
        {
            if (this.arrayElemObjectInfo != null)
            {
                return(this.arrayElemObjectInfo.GetTypeAttributeInfo());
            }
            SoapAttributeInfo attributeInfo = null;

            attributeInfo = new SoapAttributeInfo();
            Attr.ProcessTypeAttribute(this.objectType, attributeInfo);
            return(attributeInfo);
        }
Example #2
0
        // Check for Interop type (SchemaType)
        private SoapAttributeInfo GetTypeAttributeInfo()
        {
            if (arrayElemObjectInfo != null)
            {
                return(arrayElemObjectInfo.GetTypeAttributeInfo());
            }

            SoapAttributeInfo attributeInfo = null;

            attributeInfo = new SoapAttributeInfo();

            Attr.ProcessTypeAttribute(objectType, attributeInfo);

            attributeInfo.Dump("type " + objectType);
            return(attributeInfo);
        }
        private SoapAttributeInfo GetTypeAttributeInfo()
        {
            if (this.arrayElemObjectInfo != null)
            {
                return(this.arrayElemObjectInfo.GetTypeAttributeInfo());
            }
            SoapAttributeInfo attributeInfo = null;

            if (this.parentMemberAttributeInfo != null)
            {
                attributeInfo = this.parentMemberAttributeInfo;
            }
            else
            {
                attributeInfo = new SoapAttributeInfo();
            }
            Attr.ProcessTypeAttribute(this.objectType, attributeInfo);
            return(attributeInfo);
        }
Example #4
0
        private void InitMemberInfo()
        {
            InternalST.Soap(this, objectInfoId, " ", objectType, " InitMemberInfo Entry");

            cache = (SerObjectInfoCache)serObjectInfoInit.seenBeforeTable[objectType];
            if (cache == null)
            {
                InternalST.Soap(this, objectInfoId, " ", objectType, " InitMemberInfo new cache");
                cache = new SerObjectInfoCache();
                int count = 0;
                if (!objectType.IsByRef) // byref will only occur for MethodSignature
                {
                    cache.memberInfos = FormatterServices.GetSerializableMembers(objectType, context);
                    count             = cache.memberInfos.Length;
                }
                cache.memberNames          = new String[count];
                cache.memberTypes          = new Type[count];
                cache.memberAttributeInfos = new SoapAttributeInfo[count];

                // Calculate new arrays
                for (int i = 0; i < count; i++)
                {
                    cache.memberNames[i]          = cache.memberInfos[i].Name;
                    cache.memberTypes[i]          = GetMemberType(cache.memberInfos[i]);
                    cache.memberAttributeInfos[i] = Attr.GetMemberAttributeInfo(cache.memberInfos[i], cache.memberNames[i], cache.memberTypes[i]);
                    InternalST.Soap(this, objectInfoId, " InitMemberInfo name ", cache.memberNames[i], ", type ", cache.memberTypes[i], ", memberInfoType ", cache.memberInfos[i].GetType());
                }
                cache.fullTypeName   = objectType.FullName;
                cache.assemblyString = objectType.Module.Assembly.FullName;
                serObjectInfoInit.seenBeforeTable.Add(objectType, cache);
            }

            if (obj != null)
            {
                memberData = FormatterServices.GetObjectData(obj, cache.memberInfos);
                DumpMemberInfo();
            }

            isTyped = true;
            isNamed = true;
            InternalST.Soap(this, objectInfoId, " ", objectType, " InitMemberInfo Exit");
        }
Example #5
0
        // Check for Interop type (SchemaType)
        private SoapAttributeInfo GetTypeAttributeInfo()
        {
            if (arrayElemObjectInfo != null)
            {
                return(arrayElemObjectInfo.GetTypeAttributeInfo());
            }

            SoapAttributeInfo attributeInfo = null;

            if (parentMemberAttributeInfo != null)
            {
                attributeInfo = parentMemberAttributeInfo;
            }
            else
            {
                attributeInfo = new SoapAttributeInfo();
            }

            Attr.ProcessTypeAttribute(objectType, attributeInfo);

            attributeInfo.Dump("type " + objectType);
            return(attributeInfo);
        }