/// <summary> /// Translates a PropertyDictionary of ProjectPropertyInstances. /// </summary> /// <param name="translator">The tranlator doing the translating</param> /// <param name="value">The dictionary to translate.</param> public static void TranslateProjectPropertyInstanceDictionary(this INodePacketTranslator translator, ref PropertyDictionary <ProjectPropertyInstance> value) { if (!translator.TranslateNullable(value)) { return; } if (translator.Mode == TranslationDirection.ReadFromStream) { int count = 0; translator.Translate(ref count); value = new PropertyDictionary <ProjectPropertyInstance>(count); for (int i = 0; i < count; i++) { ProjectPropertyInstance instance = null; translator.Translate(ref instance, ProjectPropertyInstance.FactoryForDeserialization); value[instance.Name] = instance; } } else // TranslationDirection.WriteToStream { int count = value.Count; translator.Translate(ref count); foreach (ProjectPropertyInstance instance in value) { ProjectPropertyInstance instanceForSerialization = instance; translator.Translate(ref instanceForSerialization, ProjectPropertyInstance.FactoryForDeserialization); } } }