public static ReflectionParameterImportDefinition CreateParameterImportDefinition(ParameterInfo parameter, ICompositionElement origin)
        {
            Requires.NotNull(parameter, "parameter");

            ReflectionParameter reflectionParameter = parameter.ToReflectionParameter();

            AttributedImportDefinitionCreationInfo importCreationInfo = AttributedModelDiscovery.GetImportDefinitionCreationInfo(reflectionParameter, parameter);

            return(new ReflectionParameterImportDefinition(
                       parameter.AsLazy(),
                       importCreationInfo.ContractName,
                       importCreationInfo.RequiredTypeIdentity,
                       importCreationInfo.RequiredMetadata,
                       importCreationInfo.Cardinality,
                       importCreationInfo.RequiredCreationPolicy,
                       origin));
        }
        public static ReflectionMemberImportDefinition CreateMemberImportDefinition(MemberInfo member, ICompositionElement origin)
        {
            Requires.NotNull(member, "member");

            ReflectionWritableMember reflectionMember = member.ToReflectionWritableMember();

            AttributedImportDefinitionCreationInfo importCreationInfo = AttributedModelDiscovery.GetImportDefinitionCreationInfo(reflectionMember, member);

            return(new ReflectionMemberImportDefinition(
                       new LazyMemberInfo(member),
                       importCreationInfo.ContractName,
                       importCreationInfo.RequiredTypeIdentity,
                       importCreationInfo.RequiredMetadata,
                       importCreationInfo.Cardinality,
                       importCreationInfo.IsRecomposable,
                       importCreationInfo.RequiredCreationPolicy,
                       origin));
        }