private void buildMetaExport(AttributeInfo info, ComponentInfoBuilder builder) { var isMultiple = info.GetArgument("IsMultiple") == "true"; var name = parseObject(info.GetArgument("Name", 0), builder, info.Element) as string; var value = parseObject(info.GetArgument("Value", 1), builder, info.Element); builder.AddMeta(name, value, isMultiple); }
/// <summary> /// Initializes a new instance of the <see cref="StringExport2"/> class. /// </summary> public StringExport2() { FullName = "StringExport2"; var builder = new ComponentInfoBuilder(GetTypeInfo()); builder.AddPropertyExport(TypeDescriptor.Create <string>(), "Export"); ComponentInfo = builder.BuildWithImplicitCtor(); }
/// <summary> /// Initializes a new instance of the <see cref="SelfStringExport" /> class. /// </summary> public SelfStringExport() { FullName = "SelfStringExport"; var builder = new ComponentInfoBuilder(GetTypeInfo()); builder.AddSelfExport(false, typeof(string).FullName); builder.SetImportingCtor(TypeDescriptor.Create <string>()); ComponentInfo = builder.BuildWithImplicitCtor(); }
/// <summary> /// Initializes a new instance of the <see cref="ICollectionStringImport"/> class. /// </summary> public ICollectionStringImport() { FullName = "ICollectionStringImport"; var builder = new ComponentInfoBuilder(GetTypeInfo()); builder.AddManyImport(TypeDescriptor.Create <List <string> >(), TypeDescriptor.Create <string>(), "Import"); ComponentInfo = builder.BuildWithImplicitCtor(); }
/// <summary> /// Initializes a new instance of the <see cref="LazyStringMetaImport"/> class. /// </summary> public LazyStringMetaImport() { FullName = "LazyStringMetaImport"; var builder = new ComponentInfoBuilder(GetTypeInfo()); builder.AddPropertyImport(TypeDescriptor.Create("System.Lazy<System.String,MetaInterface>"), "Import"); builder.SetImportingCtor(); ComponentInfo = builder.BuildWithImplicitCtor(); }
/// <summary> /// Initializes a new instance of the <see cref="SimpleStringExport"/> class. /// </summary> public SimpleStringExport() { FullName = "SimpleStringExport"; var builder = new ComponentInfoBuilder(GetTypeInfo()); builder.AddPropertyExport(TypeDescriptor.Create <string>(), "Export"); builder.AddExplicitCompositionPoint(Naming.Method(TypeInfo, Naming.CtorName, false)); ComponentInfo = builder.BuildWithImplicitCtor(); }
/// <summary> /// Initializes a new instance of the <see cref="ManyStringImport"/> class. /// </summary> public ManyStringImport() { FullName = "ManyStringImport"; var builder = new ComponentInfoBuilder(GetTypeInfo()); var stringInfo = TypeDescriptor.Create <string>(); var manyInfo = TypeDescriptor.Create <string[]>(); builder.AddManyImport(manyInfo, stringInfo, "Import"); ComponentInfo = builder.BuildWithImplicitCtor(); }
/// <summary> /// Initializes a new instance of the <see cref="LazyStringImport"/> class. /// </summary> public LazyStringImport() { FullName = "LazyStringImport"; var builder = new ComponentInfoBuilder(GetTypeInfo()); builder.AddPropertyImport(TypeDescriptor.Create <Lazy <string> >(), "Import"); builder.SetImportingCtor(); ComponentInfo = builder.BuildWithImplicitCtor(); }
/// <summary> /// Get or create <see cref="ComponentInfoBuilder"/> for class owning currently visited element /// </summary> /// <returns><see cref="ComponentInfoBuilder"/> for currently visited class</returns> private ComponentInfoBuilder getOrCreateCurrentBuilder(CodeElement element) { var currentClass = element.DeclaringClass(); ComponentInfoBuilder builder; if (!_builtComponents.TryGetValue(currentClass, out builder)) { _builtComponents[currentClass] = builder = new ComponentInfoBuilder(_assembly.InfoBuilder.CreateDescriptor(currentClass)); } return(builder); }
private string parseContract(string rawContract, ComponentInfoBuilder builder, CodeAttribute2 attribute) { if (rawContract == null) { return(null); } var parsed = parseObject(rawContract, builder, attribute); var type = parsed as InstanceInfo; if (type != null) { return(type.TypeName); } return(parsed as string); }
private void exploreMetaData(AttributeInfo exportAttribute, ComponentInfoBuilder builder) { var target = exportAttribute.Element.Parent as CodeElement; if (target == null) { return; } //check target attributes whether metadata is exported var attributes = target.GetAttributes(); foreach (CodeAttribute2 attribute in attributes) { if (attribute.FullName == Naming.ExportMetadataAttribute) { var info = new AttributeInfo(attribute); buildMetaExport(info, builder); } } }
private async Task MainInternalAsync(string[] args) { _cmdOptions = CommandLineOptions.Parse(args, _console); var appdir = _cmdOptions.MainAppDirectory.Value(); var staticServe = _cmdOptions.StaticServe.Value(); var componentBuild = _cmdOptions.BuildComponent.Value(); var cleanTemp = _cmdOptions.CleanTemp.HasValue(); if (cleanTemp) { PathUtility.CleanTempDirectory(); } if (!string.IsNullOrEmpty(appdir)) { appdir = NormalizePath(appdir); if (Directory.Exists(appdir)) { _console.Out.WriteLine("Main application directory is: " + appdir); appdir = PathUtility.NormalizeRelavitePath(Directory.GetCurrentDirectory(), appdir); HostingHelper.MainAppDirectory = Path.GetFullPath(appdir); } } if (!string.IsNullOrEmpty(staticServe)) { staticServe = NormalizePath(staticServe); if (Directory.Exists(staticServe)) { _console.Out.WriteLine("Static files directory is: " + staticServe); HostingHelper.StaticServe = staticServe; } } if (!string.IsNullOrEmpty(componentBuild)) { componentBuild = NormalizePath(componentBuild); if (Directory.Exists(componentBuild)) { ComponentInfoBuilder.Build(_console, componentBuild); } else { _console.Out.WriteLine("=====Exiting: Build directory does not exist: " + componentBuild); } return; } _cmdOptions.App.ShowHelp(); _urls = new List <string>() { $"http://*:{HostingHelper.GetHostingPort()}" }; await Task.Run(() => { var contentRoot = Directory.GetCurrentDirectory(); #if RELEASE contentRoot = PathUtility.GetRootPath(true); #endif var hostBuilder = new WebHostBuilder() .UseKestrel(options => options.AddServerHeader = false) .UseContentRoot(contentRoot) .UseUrls(_urls.ToArray()) .ConfigureAppConfiguration((hostingContext, config) => { var env = hostingContext.HostingEnvironment; config.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true) .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true, reloadOnChange: true); config.AddEnvironmentVariables(); }) .ConfigureLogging((webHostBuilderContext, logging) => { IConfiguration configuration = webHostBuilderContext.Configuration; ILoggingBuilder loggerBuilder = logging; loggerBuilder.AddConfiguration(configuration.GetSection("Logging")); loggerBuilder.AddConsole(); loggerBuilder.AddDebug(); }) .UseStartup <Startup>(); #if RELEASE hostBuilder.UseWebRoot(PathUtility.GetRootPath()); #endif bool serveStatic = !string.IsNullOrEmpty(HostingHelper.StaticServe); if (serveStatic) { hostBuilder.UseWebRoot(HostingHelper.StaticServe); } var host = hostBuilder.Build(); if (!serveStatic) { var applicationLifetime = host.Services.GetService <IApplicationLifetime>(); applicationLifetime.ApplicationStarted.Register(ApplicationStarted); } host.Run(); }); }
private object parseObject(string data, ComponentInfoBuilder builder, CodeAttribute2 attribute) { return(_assembly.ParseValue(data, builder.ComponentType, attribute as CodeElement)); }
public void RegisterComponentInfoBuilder(ComponentInfoBuilder componentInfoBuilder) { this.builders.Add(componentInfoBuilder); }