Пример #1
0
        private void DetermineContentDependencies(AttributeExtCollection attributesAfterMap)
        {
            m_dependenciesContent = new ArrayList();

            // for the following types methods and properties must be considered
            if (ClsToIdlMapper.IsMappedToConcreteValueType(m_forType) ||
                ClsToIdlMapper.IsMappedToAbstractValueType(m_forType) ||
                ClsToIdlMapper.IsMappedToConcreteInterface(m_forType) ||
                ClsToIdlMapper.IsMappedToAbstractInterface(m_forType) ||
                ClsToIdlMapper.IsMappedToLocalInterface(m_forType))
            {
                // check the methods
                DetermineContentDependenciesFromMethods();
                // check the properties
                DetermineContentDependenciesFromProperties();
            }

            // fields must be considered only for value-types
            if (ClsToIdlMapper.IsMappedToConcreteValueType(m_forType) ||
                ClsToIdlMapper.IsException(m_forType) ||
                ClsToIdlMapper.IsMarshalledAsStruct(m_forType) ||
                ClsToIdlMapper.IsMappedToBoxedValueType(m_forType))
            {
                DetermineContentDependenciesFromFields();
            }
            if (ClsToIdlMapper.IsArray(m_forType))
            {
                DetermineContentDependenciesFromElementType(attributesAfterMap);
            }
        }