Exemplo n.º 1
0
        /// <summary>
        /// Loads XAML from the specified XamlXmlReader and returns the deserialized object.  Any event handlers
        /// are bound to methods defined in the provided Scope and converted using the provided DynamicOperations
        /// object.
        /// </summary>
        public static object LoadComponent(dynamic scope, DynamicOperations operations, XamlXmlReader reader) {
            var settings = new XamlObjectWriterSettings();
            settings.RootObjectInstance = scope;

            var myWriter = new DynamicWriter((object)scope, operations, reader.SchemaContext, settings);
            while (reader.Read()) {
                myWriter.WriteNode(reader);
            }

            foreach (string name in myWriter.Names) {
                object value = myWriter.RootNameScope.FindName(name);
                if (value != null) {
                    operations.SetMember((object)scope, name, value);
                }
            }
            
            return myWriter.Result;
        }
Exemplo n.º 2
0
 public DynamicEventInvoker(EventInfo info, DynamicWriter writer) {
     _writer = writer;
     _info = info;
 }
Exemplo n.º 3
0
 public DynamicEventMember(DynamicWriter writer, EventInfo eventInfo, XamlSchemaContext ctx)
     : base(eventInfo.Name, Dummy, ctx, new DynamicEventInvoker(eventInfo, writer)) {
 }
Exemplo n.º 4
0
 public DynamicEventMember(DynamicWriter writer, EventInfo eventInfo, XamlSchemaContext ctx)
     : base(eventInfo.Name, Dummy, ctx, new DynamicEventInvoker(eventInfo, writer))
 {
 }
Exemplo n.º 5
0
        public static T Deserializer <T>(byte[] bytes) where T : new()
        {
            var bit = new BitStream(bytes, 0);

            return(DynamicWriter <T> .Read(bit));
        }
Exemplo n.º 6
0
 public DynamicEventInvoker(EventInfo info, DynamicWriter writer)
 {
     _writer = writer;
     _info   = info;
 }