Exemple #1
0
        public IEnumerable <GeneratedFile> GetGeneratedFiles(string baseFilename, StronglyTypedClass info, ResourceInfo.ResourceFileInfo resourceFileInfo)
        {
            var builder = new CodeStringBuilder(resourceFileInfo.Project.GetIndentString());

            GenerateHeaders(builder, info.IsAdvanced);
            AddNewLine(builder);
            OpenNamespace(builder, info.Namespaces);
            OpenStronglyTypedClass(builder, info.ResoureFile, info.ClassName);

            foreach (var item in info.Localizations)
            {
                AddNewLine(builder);

                OpenRegion(builder, item.Key);

                CreateFormatMethod(
                    builder,
                    item.Key,
                    item.IsProperty,
                    item.Parameters,
                    item.Summary,
                    item.ExtraParameters,
                    (item as PluralLocalization)?.ParameterToUseForPluralization,
                    (item as PluralLocalization)?.SupportNoneState ?? false,
                    (item as IVariantLocalization)?.ParameterToUseForVariant);

                CloseRegion(builder, item.Key);
            }

            CloseStronglyTypedClass(builder);
            AddNewLine(builder);
            CreateMarkupExtension(builder, info.ResoureFile, info.ClassName + "Extension", info.Localizations.Where(i => i is Localization).Select(s => s.Key));
            CloseNamespace(builder, info.Namespaces);
            return(GetGeneratedFiles(builder, baseFilename));
        }
        public override IEnumerable <GeneratedFile> GetGeneratedFiles(string baseFilename, StronglyTypedClass info, ResourceInfo.ResourceFileInfo resourceFileInfo)
        {
            // Generate .cpp and .h files
            var namespaces = new List <string>
            {
                "winrt"
            };

            if (info.Namespaces != null)
            {
                namespaces.AddRange(info.Namespaces);
            }
            namespaces.Add("implementation");

            var generatedFiles = GeneratedFiles(baseFilename, info, resourceFileInfo, namespaces);

            foreach (var file in generatedFiles)
            {
                yield return(file);
            }
            var builderIdl = new CodeStringBuilder(resourceFileInfo.ParentProject.GetIndentString());

            // Generate .idl file
            yield return(GenerateIdlFile(builderIdl, baseFilename, info));
        }