public IExport CreateAnonymosWithTarget([NotNull] Type type, [NotNull] object target) { Contract.Requires<ArgumentNullException>(type != null, "type"); Contract.Requires<ArgumentNullException>(target != null, "target"); Contract.Ensures(Contract.Result<IExport>() != null); var info = new ExternalExportInfo(true, true, true, true, (context, service) => target, type.ToString()); var export = new DefaultExport(type, info, true); export.ImportMetadata = _chain.SelectImport(export); return export; }
/// <summary> /// The create. /// </summary> /// <param name="type"> /// The type. /// </param> /// <returns> /// The <see cref="IExport" />. /// </returns> public IExport Create(Type type, ref int level) { Contract.Requires<ArgumentNullException>(type != null, "type"); if (!DefaultExport.IsExport(type)) return null; var export = new DefaultExport( type, new ExternalExportInfo(false, false, true, true, null, string.Empty), false); var attr = type.GetCustomAttribute<ExportLevelAttribute>(); if (attr != null) level = attr.Level; export.ImportMetadata = _chain.SelectImport(export); return export; }
/// <summary> /// The create anonymos. /// </summary> /// <param name="type"> /// The type. /// </param> /// <param name="args"> /// The args. /// </param> /// <returns> /// The <see cref="IExport" />. /// </returns> public IExport CreateAnonymos(Type type, object[] args) { Contract.Requires<ArgumentNullException>(type != null, "type"); Contract.Ensures(Contract.Result<IExport>() != null); var export = new DefaultExport( type, new ExternalExportInfo( true, true, true, true, (con, ps) => Activator.CreateInstance(type, args), type.Name), true); export.ImportMetadata = _chain.SelectImport(export); return export; }