System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitMemberInfo C# (CSharp) Method

InitMemberInfo() private method

private InitMemberInfo ( ) : void
return void
        private void InitMemberInfo()
        {
            if (!_serObjectInfoInit._seenBeforeTable.TryGetValue(_objectType, out _cache))
            {
                _cache = new SerObjectInfoCache(_objectType);

                _cache._memberInfos = FormatterServices.GetSerializableMembers(_objectType, _context);
                int count = _cache._memberInfos.Length;
                _cache._memberNames = new string[count];
                _cache._memberTypes = new Type[count];

                // Calculate new arrays
                for (int i = 0; i < count; i++)
                {
                    _cache._memberNames[i] = _cache._memberInfos[i].Name;
                    _cache._memberTypes[i] = ((FieldInfo)_cache._memberInfos[i]).FieldType;
                }
                _serObjectInfoInit._seenBeforeTable.Add(_objectType, _cache);
            }

            if (_obj != null)
            {
                _memberData = FormatterServices.GetObjectData(_obj, _cache._memberInfos);
            }

            _isNamed = true;
        }