e79aa3c0ed
Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
41 lines
1.4 KiB
C#
41 lines
1.4 KiB
C#
//-----------------------------------------------------------------------------
|
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
//-----------------------------------------------------------------------------
|
|
|
|
namespace System.Activities.XamlIntegration
|
|
{
|
|
using System;
|
|
using System.Windows.Markup;
|
|
|
|
public class ArgumentValueSerializer : ValueSerializer
|
|
{
|
|
public override bool CanConvertToString(object value, IValueSerializerContext context)
|
|
{
|
|
Argument argument = value as Argument;
|
|
if (argument == null)
|
|
{
|
|
return false;
|
|
}
|
|
if (ActivityBuilder.HasPropertyReferences(value))
|
|
{
|
|
// won't be able to attach the property references if we convert to string
|
|
return false;
|
|
}
|
|
|
|
return argument.CanConvertToString(context);
|
|
}
|
|
|
|
public override string ConvertToString(object value, IValueSerializerContext context)
|
|
{
|
|
Argument argument = value as Argument;
|
|
if (argument == null)
|
|
{
|
|
// expect CanConvertToString() always comes before ConvertToString()
|
|
throw FxTrace.Exception.Argument("value", SR.CannotSerializeExpression(value.GetType()));
|
|
}
|
|
|
|
return argument.ConvertToString(context);
|
|
}
|
|
}
|
|
}
|