//----------------------------------------------------------------------------- // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace Microsoft.VisualBasic.Activities.XamlIntegration { using System.Collections.Generic; using System.Windows.Markup; using System.Xaml; // this value serializer always returns false for CanConvertToString, but // needs to add namespace declarations to the context // public sealed class VisualBasicSettingsValueSerializer : ValueSerializer { internal const string VisualBasicSettingsValue = "Assembly references and imported namespaces serialized as XML namespaces"; internal const string ImplementationVisualBasicSettingsValue = "Assembly references and imported namespaces for internal implementation"; public VisualBasicSettingsValueSerializer() : base() { } public override bool CanConvertToString(object value, IValueSerializerContext context) { VisualBasicSettings settings = value as VisualBasicSettings; // promote settings to xmlns declarations if (settings != null) { settings.GenerateXamlReferences(context); } return true; } public override string ConvertToString(object value, IValueSerializerContext context) { VisualBasicSettings settings = value as VisualBasicSettings; if (settings != null && settings.SuppressXamlSerialization) { return ImplementationVisualBasicSettingsValue; } return VisualBasicSettingsValue; } } }