コード例 #1
0
        public void GenerateStronglyTypedDesignerClassFromResxFile()
        {
            string filename     = @"c:\temp\resourceTest\LocalizationForm.resx";
            string designerFile = Path.ChangeExtension(filename, "designer.cs");

            if (File.Exists(designerFile))
            {
                File.Delete(designerFile);
            }

            var str = new StronglyTypedResources(@"c:\temp\resourceTest");

#if NETFULL
            str.CreateResxDesignerClassFromResxFile(filename, "LocalizationAdmin", "Westwind.Globalization.Sample");
#else
            str.CreateResxDesignerClassFromResourceSet("LocalizationAdmin", "Westwind.Globalization.Sample", "LocalizationAdmin", filename);
#endif
            Assert.IsTrue(File.Exists(designerFile));
        }
        public bool CreateClass([FromBody] dynamic parms)
        {
#if OnlineDemo
            throw new ApplicationException(WebUtils.GRes("FeatureDisabled"));
#endif
            var config = DbResourceConfiguration.Current;

            // { filename: "~/properties/resources.cs, nameSpace: "WebApp1", resourceSets: ["rs1","rs2"],classType: "DbRes|Resx"]
            string filename  = parms["fileName"];
            string nameSpace = parms["namespace"];
            string classType = parms["classType"];
            JArray rs        = parms["resourceSets"] as JArray;

            string[] resourceSets = null;
            if (rs != null)
            {
                resourceSets = rs.ToObject <string[]>();
                if (resourceSets != null && resourceSets.Length == 1 && string.IsNullOrEmpty(resourceSets[0]))
                {
                    resourceSets = null;
                }
            }


            StronglyTypedResources strongTypes =
                new StronglyTypedResources(Request.MapPath("~/", basePath: Host.ContentRootPath));

            if (string.IsNullOrEmpty(filename))
            {
                filename = Request.MapPath(config.StronglyTypedGlobalResource, basePath: Host.ContentRootPath);
            }

            else if (filename.StartsWith("~"))
            {
                filename = Request.MapPath(filename, basePath: Host.ContentRootPath);
            }

            filename = DbResourceUtils.NormalizePath(filename);

            if (string.IsNullOrEmpty(nameSpace))
            {
                nameSpace = config.ResourceBaseNamespace;
            }

            if (!string.IsNullOrEmpty(strongTypes.ErrorMessage))
            {
                throw new ApplicationException(DbIRes.T("StronglyTypedGlobalResourcesFailed", STR_RESOURCESET));
            }

            if (classType != "Resx")
            {
                strongTypes.CreateClassFromAllDatabaseResources(nameSpace, filename, resourceSets);
            }
            else
            {
                string outputBasePath = filename;

                if (resourceSets == null || resourceSets.Length < 1)
                {
                    resourceSets = Manager.GetAllResourceSets(ResourceListingTypes.AllResources).ToArray();
                }

                foreach (var resource in resourceSets)
                {
                    string file = Path.Combine(outputBasePath, resource + ".resx");
                    if (!System.IO.File.Exists(file))
                    {
                        continue;
                    }


                    var str = new StronglyTypedResources(null);
#if NETFULL
                    // Use automated generation
                    str.CreateResxDesignerClassFromResxFile(file, resource, nameSpace, false);
#else
                    // Manual code generation
                    str.CreateResxDesignerClassFromResourceSet(resource, nameSpace, resource, file);
#endif
                }
            }

            return(true);
        }