예제 #1
0
    private void SaveXmlOrBinary(string path, StringDictionary languageTexts)
    {
        this.languageList = languageTexts.ToList();
        bool isBinaryFile = this.extension == ".bin";

        SerializationTemplate.Save <LanguageType>(path, languageList, isBinaryFile);
    }
        public FastSerializationTemplate(Type type)
        {
            kleiTemplate           = null;
            serializableFields     = new Dictionary <string, DeserializationFieldInfo>(32);
            serializableProperties = new Dictionary <string, DeserializationPropertyInfo>(32);
            targetType             = type;
            type.GetSerializationMethods(typeof(OnSerializingAttribute),
                                         typeof(OnSerializedAttribute), typeof(CustomSerialize), out onSerializing,
                                         out onSerialized, out customSerialize);
            // Add fields as set by the serialization config
            var sc = GetSerializationConfig(type);

            if (sc == MemberSerialization.OptIn)
            {
                while (type != typeof(object))
                {
                    AddOptInFields(type);
                    AddOptInProperties(type);
                    type = type.BaseType;
                }
            }
            else if (sc == MemberSerialization.OptOut)
            {
                while (type != typeof(object))
                {
                    AddPublicFields(type);
                    AddPublicProperties(type);
                    type = type.BaseType;
                }
            }
        }
예제 #3
0
    public StringDictionary LoadXmlOrBinary(string path)
    {
        StringDictionary languageTexts = new StringDictionary();

        this.languageList = SerializationTemplate.Load <LanguageType>(path, this.extensionEnumeration == e_languageExtension.Bin);
        this.languageList.ForEach(node => languageTexts.Add(node.Key, node.Value));

        return(languageTexts);
    }
예제 #4
0
    public LanguageType LoadEditorLanguageData(e_language newLanguage, e_languageExtension newExtension)
    {
        string path = DirectoryFunction.CombinePath(this.repositoryPath, newLanguage.ToString()) + "." + newExtension.ToString().ToLower();

        //LanguageType languageData = new LanguageType();

        if (newExtension == e_languageExtension.Ini)
        {
            IniFile parser = new IniFile(path);
            return(new StringDictionary(parser.KeysValues).ToList());
        }
        else
        {
            return(SerializationTemplate.Load <LanguageType>(path, newExtension == e_languageExtension.Bin));
        }
    }
예제 #5
0
    public void InitializeLoadingDatas()
    {
        this.directories = DirectoryFunction.GetSubDirectories(this.repositoryPath);
        this.directories.Sort((a, b) => { return((Directory.GetLastWriteTime(a) > Directory.GetLastWriteTime(b)) ? 1 : -1); });
        this.loadingDatas.Clear();

        foreach (string directory in directories)
        {
            LoadingData loadingData = new LoadingData();

            loadingData = SerializationTemplate.Load <LoadingData>(DirectoryFunction.CombinePath(
                                                                       DirectoryFunction.CombinePath(this.repositoryPath, directory), SaveInformation.loadingData));

            this.loadingDatas.Add(loadingData);
        }
    }
예제 #6
0
    public void SaveEditorLanguageData(e_language newLanguage, e_languageExtension newExtension, LanguageType languageData)
    {
        string path = DirectoryFunction.CombinePath(this.repositoryPath, newLanguage.ToString()) + "." + newExtension.ToString().ToLower();

        if (newExtension == e_languageExtension.Ini)
        {
            IniFile          parser        = new IniFile(path);
            StringDictionary languageTexts = new StringDictionary();

            languageData.ForEach(node => languageTexts.Add(node.Key, node.Value));
            parser.SaveFile(languageTexts);
        }
        else
        {
            SerializationTemplate.Save <LanguageType>(path, languageData, newExtension == e_languageExtension.Bin);
        }
    }
예제 #7
0
 /// <summary>
 /// Applied before GetSerializationTemplate runs.
 /// </summary>
 internal static bool Prefix(Type type, ref SerializationTemplate __result)
 {
     __result = FastSerializationManager.GetKleiSerializationTemplate(type);
     return(false);
 }