diff --git a/src/Windows/Perspex.Designer/Comm/CommChannel.cs b/src/Windows/Perspex.Designer/Comm/CommChannel.cs index 67a5ca71bd..4e7bc641c9 100644 --- a/src/Windows/Perspex.Designer/Comm/CommChannel.cs +++ b/src/Windows/Perspex.Designer/Comm/CommChannel.cs @@ -104,8 +104,17 @@ namespace Perspex.Designer.Comm sealed class BinderFix : SerializationBinder { + private const string ListNamePrefix = "System.Collections.Generic.List`1[["; public override Type BindToType(string assemblyName, string typeName) { + if (typeName.StartsWith(ListNamePrefix)) + { + typeName = typeName.Substring(ListNamePrefix.Length); + typeName = typeName.Substring(0, typeName.IndexOf(",")); + return typeof (List<>).MakeGenericType(BindToType(assemblyName, typeName)); + } + + return typeof (CommChannel).Assembly.GetType(typeName, false, true); }