Example #1
0
        public void DataContractSerializerFactory_InstanceTest()
        {
            var itemList = new IParams[] { new PluginA.Params {
                                               SettingA = "TestA"
                                           }, new PluginB.Params {
                                               SettingB = "TestB"
                                           } };


            var containerList = new ICollection[]
            {
                new Collection <IParams>(itemList), new List <IParams>(itemList),
                new FastObservableCollection <IParams>(itemList),
                new Collection <KeyValuePair <IParams, object> >(new[]
                {
                    new KeyValuePair <IParams, object>(itemList[0], new object()),
                    new KeyValuePair <IParams, object>(itemList[1], new object())
                }),
                new Collection <Lazy <IParams> >(new[]
                {
                    new Lazy <IParams>(() => itemList[0]),
                    new Lazy <IParams>(() => itemList[1])
                })
            };

            foreach (var collection in containerList)
            {
                var serializer = new DataContractSerializerFactory().
                                 GetDataContractSerializer(typeof(object), collection.GetType(), "TestXmlName");

                Assert.IsTrue(serializer.KnownTypes.Contains(typeof(PluginA.Params)));
                Assert.IsTrue(serializer.KnownTypes.Contains(typeof(PluginB.Params)));
            }
        }
Example #2
0
    static void Main(string[] args)
    {
        var x          = Tuple.Create(Guid.NewGuid(), new[] { 1, 2, 3, 4, 5, 6 });
        var serializer = DataContractSerializerFactory <Tuple <Guid, int[]> > .Create();

        var sb = new StringBuilder();

        using (var writer = XmlWriter.Create(sb))
        {
            serializer.WriteObject(writer, x);
            writer.Flush();
            Console.WriteLine(sb.ToString());
        }
    }
Example #3
0
        public void DataContractSerializerFactory_NoInstanceTest()
        {
            var typeList = new[]
            {
                typeof(IEnumerable <IParams>), typeof(ICollection <IParams>),
                typeof(IDictionary <string, IParams>), typeof(IDictionary <IParams, string>),
                typeof(IList <IParams>), typeof(Collection <IParams>), typeof(FastObservableCollection <IParams>),
                typeof(IEnumerable <KeyValuePair <IParams, object> >), typeof(IEnumerable <Lazy <IParams> >),
            };

            foreach (var collectionType in typeList)
            {
                var serializer = new DataContractSerializerFactory().
                                 GetDataContractSerializer(typeof(ContainerAbstractClasses), collectionType, "TestXmlName", null, null);

                Assert.IsTrue(serializer.KnownTypes.Contains(typeof(PluginA.Params)));
                Assert.IsTrue(serializer.KnownTypes.Contains(typeof(PluginB.Params)));
            }
        }