/// <summary> /// Gets the metadata for the provided <see cref="IExportConvention"/>. /// </summary> /// <param name="exportConvention">The <see cref="IExportConvention"/> that the metadata should be retrieved for.</param> /// <param name="member">The <see cref="MemberInfo"/> that is being exported.</param> /// <returns>An <see cref="IDictionary{TKey,TValue}"/> containing the metadata for the export.</returns> private IDictionary <string, object> GetExportDefinitionMetadata(IExportConvention exportConvention, MemberInfo member) { var exportDefinitionMetadata = exportConvention.Metadata.ToMetadataDictionary(); exportDefinitionMetadata.Add( CompositionConstants.ExportTypeIdentityMetadataName, this.ContractService.GetExportTypeIdentity(exportConvention, member)); return(exportDefinitionMetadata); }
/// <summary> /// Gets type identity for the provided <see cref="IExportConvention"/>. /// </summary> /// <param name="exportConvention">The <see cref="IExportConvention"/> that the type identity should be retreived for.</param> /// <param name="member">The <see cref="MemberInfo"/> that is being exported.</param> /// <returns>A <see cref="string"/> containing the type identity for the export.</returns> /// <exception cref="ArgumentNullException">The value of the <paramref name="member"/> or <paramref name="exportConvention"/> parameter was <see langword="null"/>.</exception> public virtual string GetExportTypeIdentity(IExportConvention exportConvention, MemberInfo member) { if (exportConvention == null) { throw new ArgumentNullException("exportConvention", "The export convention cannot be null."); } if (member == null) { throw new ArgumentNullException("member", "The member cannot be null."); } return(ContractServices.GetExportTypeIdentity( (exportConvention.ContractType == null) ? null : exportConvention.ContractType.Invoke(member), member)); }
/// <summary> /// Gets contract name for the provided <see cref="IExportConvention"/>. /// </summary> /// <param name="exportConvention">The <see cref="IExportConvention"/> that the contract name should be retreived for.</param> /// <param name="member">The <see cref="MemberInfo"/> that is being exported.</param> /// <returns>A <see cref="string"/> containing the contract name for the export.</returns> /// <exception cref="ArgumentNullException">The value of the <paramref name="member"/> or <paramref name="exportConvention"/> parameter was <see langword="null"/>.</exception> public override string GetExportContractName(IExportConvention exportConvention, MemberInfo member) { if (member == null) { throw new ArgumentNullException("member", "The member cannot be null."); } var contractMember = member.GetContractMember(); var defaultContractName = this.DefaultConventions.Where(x => x.TargetType.Equals(contractMember)) .Select(x => x.ContractName).LastOrDefault(); return(defaultContractName ?? base.GetExportContractName(exportConvention, member)); }
/// <summary> /// Gets contract name for the provided <see cref="IExportConvention"/>. /// </summary> /// <param name="exportConvention">The <see cref="IExportConvention"/> that the contract name should be retreived for.</param> /// <param name="member">The <see cref="MemberInfo"/> that is being exported.</param> /// <returns>A <see cref="string"/> containing the contract name for the export.</returns> /// <exception cref="ArgumentNullException">The value of the <paramref name="member"/> or <paramref name="exportConvention"/> parameter was <see langword="null"/>.</exception> public override string GetExportContractName(IExportConvention exportConvention, MemberInfo member) { if (member == null) { throw new ArgumentNullException("member", "The member cannot be null."); } var contractMember = member.GetContractMember(); var defaultContractName = this.DefaultConventions.Where(x => x.TargetType.Equals(contractMember)) .Select(x => x.ContractName).LastOrDefault(); return defaultContractName ?? base.GetExportContractName(exportConvention, member); }
/// <summary> /// Gets type identity for the provided <see cref="IExportConvention"/>. /// </summary> /// <param name="exportConvention">The <see cref="IExportConvention"/> that the type identity should be retreived for.</param> /// <param name="member">The <see cref="MemberInfo"/> that is being exported.</param> /// <returns>A <see cref="string"/> containing the type identity for the export.</returns> /// <exception cref="ArgumentNullException">The value of the <paramref name="member"/> or <paramref name="exportConvention"/> parameter was <see langword="null"/>.</exception> public virtual string GetExportTypeIdentity(IExportConvention exportConvention, MemberInfo member) { if (exportConvention == null) { throw new ArgumentNullException("exportConvention", "The export convention cannot be null."); } if (member == null) { throw new ArgumentNullException("member", "The member cannot be null."); } return ContractServices.GetExportTypeIdentity( (exportConvention.ContractType == null) ? null : exportConvention.ContractType.Invoke(member), member); }
/// <summary> /// Gets type identity for the provided <see cref="IExportConvention"/>. /// </summary> /// <param name="exportConvention">The <see cref="IExportConvention"/> that the type identity should be retreived for.</param> /// <param name="member">The <see cref="MemberInfo"/> that is being exported.</param> /// <returns>A <see cref="string"/> containing the type identity for the export.</returns> /// <exception cref="ArgumentNullException">The value of the <paramref name="member"/> or <paramref name="exportConvention"/> parameter was <see langword="null"/>.</exception> public override string GetExportTypeIdentity(IExportConvention exportConvention, MemberInfo member) { if (member == null) { throw new ArgumentNullException("member", "The member cannot be null."); } var contractMember = member.GetContractMember(); var defaultContractType = this.DefaultConventions.Where(x => x.TargetType.Equals(contractMember)) .Select(x => x.ContractType).LastOrDefault(); return defaultContractType != null ? AttributedModelServices.GetTypeIdentity(defaultContractType) : base.GetExportTypeIdentity(exportConvention, member); }
/// <summary> /// Gets the metadata for the provided <see cref="IExportConvention"/>. /// </summary> /// <param name="exportConvention">The <see cref="IExportConvention"/> that the metadata should be retrieved for.</param> /// <param name="member">The <see cref="MemberInfo"/> that is being exported.</param> /// <returns>An <see cref="IDictionary{TKey,TValue}"/> containing the metadata for the export.</returns> private IDictionary<string, object> GetExportDefinitionMetadata(IExportConvention exportConvention, MemberInfo member) { var exportDefinitionMetadata = exportConvention.Metadata.ToMetadataDictionary(); exportDefinitionMetadata.Add( CompositionConstants.ExportTypeIdentityMetadataName, this.ContractService.GetExportTypeIdentity(exportConvention, member)); return exportDefinitionMetadata; }
/// <summary> /// Gets type identity for the provided <see cref="IExportConvention"/>. /// </summary> /// <param name="exportConvention">The <see cref="IExportConvention"/> that the type identity should be retreived for.</param> /// <param name="member">The <see cref="MemberInfo"/> that is being exported.</param> /// <returns>A <see cref="string"/> containing the type identity for the export.</returns> private static string GetExportTypeIdentity(IExportConvention exportConvention, MemberInfo member) { if (exportConvention.ContractType != null) { return AttributedModelServices.GetTypeIdentity(exportConvention.ContractType.Invoke(member)); } return member.MemberType.Equals(MemberTypes.Method) ? AttributedModelServices.GetTypeIdentity((MethodInfo)member) : AttributedModelServices.GetTypeIdentity(member.GetContractMember()); }