dependency properties do not get serialized
I have written the code shown below to serialize a string property in my custom activity. However, the property is not written to the XML file, when I call WorkflowMarkupSerializer.Serialize(). What am I missing?
--
[Serializable]
[DesignerSerializer(typeof(PanedActivitySerializer),typeof(WorkflowMarkupSerializer))]
[Designer(typeof(PanedActivityDesigner),typeof(IDesigner))]
[Designer(typeof(PanedActivityDesigner),typeof(IRootDesigner))]
publicclassPanedActivity : System.Workflow.ComponentModel.Activity
{
public PanedActivity()
:base()
{
}
public PanedActivity(string predicate)
:base()
{
this.Predicate = predicate ;
}
publicstaticDependencyProperty PredicateProperty =
System.Workflow.ComponentModel.DependencyProperty.Register(
"Predicate",typeof(string),typeof(PanedActivity));
publicstring Predicate
{
get
{
return ((string)(base.GetValue(PanedActivity.PredicateProperty)));
}
set
{
base.SetValue(PanedActivity.PredicateProperty,value);
}
}
}
publicclassPanedActivitySerializer :WorkflowMarkupSerializer
{
protectedoverridebool CanSerializeToString(System.Workflow.ComponentModel.Serialization.WorkflowMarkupSerializationManager serializationManager,object value)
{
returntrue;
}
protectedoverridestring SerializeToString(System.Workflow.ComponentModel.Serialization.WorkflowMarkupSerializationManager serializationManager,object value)
{
List<PropertyInfo> props =newList<PropertyInfo>(base.GetProperties(serializationManager, value));
return props[0].GetValue(value,null).ToString();
}
protectedoverrideobject DeserializeFromString(WorkflowMarkupSerializationManager serializationManager,Type propertyType,string value)
{
string predicate = value.ToString();
returnnewPanedActivity (predicate.ToString());
}
}
}

