Jo Shields 3c1f479b9d Imported Upstream version 4.0.0~alpha1
Former-commit-id: 806294f5ded97629b74c85c09952f2a74fe182d9
2015-04-07 09:35:12 +01:00

49 lines
1.7 KiB
C#

//-----------------------------------------------------------------------------
// 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;
}
}
}