SL2JS.SilverlightAssemblyTranslator.GetEntrypointNameFromAssembly C# (CSharp) Method

GetEntrypointNameFromAssembly() public method

public GetEntrypointNameFromAssembly ( string filename ) : string
filename string
return string
        public string GetEntrypointNameFromAssembly(string filename)
        {
            var assembly = AssemblyDefinition.ReadAssembly(filename, GetReaderParameters(false));
            return assembly.MainModule.Types
                .Where(x => x.BaseType != null && x.BaseType.FullName == "System.Windows.Application")
                .Select(x => x.FullName).FirstOrDefault();
        }

Usage Example

        private void GenerateContainer(SilverlightAssemblyTranslator translator)
        {
            var container = File.ReadAllText("container.html");

            var applicationEntrypoint = translator.GetEntrypointNameFromAssembly(configuration.Filename);
            var dependencies = GetJavascriptFilenames()
                .Select(x => string.Format("'{0}'", x))
                .ToArray();
            var templates = GetTemplateFilenames()
                .Select(x => string.Format("'{0}'", x))
                .ToArray();

            var configurationDirectiveBuilder = new StringBuilder();
            configurationDirectiveBuilder.AppendLine("sljsconfig = {");
            configurationDirectiveBuilder.AppendFormat("entryPoint: '{0}',", applicationEntrypoint).AppendLine();
            configurationDirectiveBuilder.AppendFormat("code: [{0}]", string.Join("\r\n,", dependencies)).AppendLine(",");
            configurationDirectiveBuilder.AppendFormat("templates: [{0}]", string.Join("\r\n,", templates)).AppendLine();
            configurationDirectiveBuilder.AppendLine("};");

            container = container.Replace("{configuration}", configurationDirectiveBuilder.ToString());
            File.WriteAllText(Path.Combine(configuration.OutputDirectory, "index.html"), container);
        }