You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
+namespace System.Composition.Convention {+ public abstract class AttributedModelProvider {+ protected AttributedModelProvider();+ public abstract IEnumerable<Attribute> GetCustomAttributes(Type reflectedType, MemberInfo member);+ public abstract IEnumerable<Attribute> GetCustomAttributes(Type reflectedType, ParameterInfo parameter);+ }+ public class ConventionBuilder : AttributedModelProvider {+ public ConventionBuilder();+ public PartConventionBuilder ForType(Type type);+ public PartConventionBuilder<T> ForType<T>();+ public PartConventionBuilder ForTypesDerivedFrom(Type type);+ public PartConventionBuilder<T> ForTypesDerivedFrom<T>();+ public PartConventionBuilder ForTypesMatching(Predicate<Type> typeFilter);+ public PartConventionBuilder<T> ForTypesMatching<T>(Predicate<Type> typeFilter);+ public override IEnumerable<Attribute> GetCustomAttributes(Type reflectedType, MemberInfo member);+ public override IEnumerable<Attribute> GetCustomAttributes(Type reflectedType, ParameterInfo parameter);+ }+ public sealed class ExportConventionBuilder {+ public ExportConventionBuilder AddMetadata(string name, Func<Type, object> getValueFromPartType);+ public ExportConventionBuilder AddMetadata(string name, object value);+ public ExportConventionBuilder AsContractName(Func<Type, string> getContractNameFromPartType);+ public ExportConventionBuilder AsContractName(string contractName);+ public ExportConventionBuilder AsContractType(Type type);+ public ExportConventionBuilder AsContractType<T>();+ }+ public sealed class ImportConventionBuilder {+ public ImportConventionBuilder AddMetadataConstraint(string name, Func<Type, object> getConstraintValueFromPartType);+ public ImportConventionBuilder AddMetadataConstraint(string name, object value);+ public ImportConventionBuilder AllowDefault();+ public ImportConventionBuilder AsContractName(Func<Type, string> getContractNameFromPartType);+ public ImportConventionBuilder AsContractName(string contractName);+ public ImportConventionBuilder AsMany();+ public ImportConventionBuilder AsMany(bool isMany);+ }+ public abstract class ParameterImportConventionBuilder {+ public T Import<T>();+ public T Import<T>(Action<ImportConventionBuilder> configure);+ }+ public class PartConventionBuilder {+ public PartConventionBuilder AddPartMetadata(string name, Func<Type, object> getValueFromPartType);+ public PartConventionBuilder AddPartMetadata(string name, object value);+ public PartConventionBuilder Export();+ public PartConventionBuilder Export(Action<ExportConventionBuilder> exportConfiguration);+ public PartConventionBuilder Export<T>();+ public PartConventionBuilder Export<T>(Action<ExportConventionBuilder> exportConfiguration);+ public PartConventionBuilder ExportInterfaces();+ public PartConventionBuilder ExportInterfaces(Predicate<Type> interfaceFilter);+ public PartConventionBuilder ExportInterfaces(Predicate<Type> interfaceFilter, Action<Type, ExportConventionBuilder> exportConfiguration);+ public PartConventionBuilder ExportProperties(Predicate<PropertyInfo> propertyFilter);+ public PartConventionBuilder ExportProperties(Predicate<PropertyInfo> propertyFilter, Action<PropertyInfo, ExportConventionBuilder> exportConfiguration);+ public PartConventionBuilder ExportProperties<T>(Predicate<PropertyInfo> propertyFilter);+ public PartConventionBuilder ExportProperties<T>(Predicate<PropertyInfo> propertyFilter, Action<PropertyInfo, ExportConventionBuilder> exportConfiguration);+ public PartConventionBuilder ImportProperties(Predicate<PropertyInfo> propertyFilter);+ public PartConventionBuilder ImportProperties(Predicate<PropertyInfo> propertyFilter, Action<PropertyInfo, ImportConventionBuilder> importConfiguration);+ public PartConventionBuilder ImportProperties<T>(Predicate<PropertyInfo> propertyFilter);+ public PartConventionBuilder ImportProperties<T>(Predicate<PropertyInfo> propertyFilter, Action<PropertyInfo, ImportConventionBuilder> importConfiguration);+ public PartConventionBuilder NotifyImportsSatisfied(Predicate<MethodInfo> methodFilter);+ public PartConventionBuilder SelectConstructor(Func<IEnumerable<ConstructorInfo>, ConstructorInfo> constructorSelector);+ public PartConventionBuilder SelectConstructor(Func<IEnumerable<ConstructorInfo>, ConstructorInfo> constructorSelector, Action<ParameterInfo, ImportConventionBuilder> importConfiguration);+ public PartConventionBuilder Shared();+ public PartConventionBuilder Shared(string sharingBoundary);+ }+ public class PartConventionBuilder<T> : PartConventionBuilder {+ public PartConventionBuilder<T> ExportProperty(Expression<Func<T, object>> propertySelector);+ public PartConventionBuilder<T> ExportProperty(Expression<Func<T, object>> propertySelector, Action<ExportConventionBuilder> exportConfiguration);+ public PartConventionBuilder<T> ExportProperty<TContract>(Expression<Func<T, object>> propertySelector);+ public PartConventionBuilder<T> ExportProperty<TContract>(Expression<Func<T, object>> propertySelector, Action<ExportConventionBuilder> exportConfiguration);+ public PartConventionBuilder<T> ImportProperty(Expression<Func<T, object>> propertySelector);+ public PartConventionBuilder<T> ImportProperty(Expression<Func<T, object>> propertySelector, Action<ImportConventionBuilder> importConfiguration);+ public PartConventionBuilder<T> ImportProperty<TContract>(Expression<Func<T, object>> propertySelector);+ public PartConventionBuilder<T> ImportProperty<TContract>(Expression<Func<T, object>> propertySelector, Action<ImportConventionBuilder> importConfiguration);+ public PartConventionBuilder<T> NotifyImportsSatisfied(Expression<Action<T>> methodSelector);+ public PartConventionBuilder<T> SelectConstructor(Expression<Func<ParameterImportConventionBuilder, T>> constructorSelector);+ }+}