//------------------------------------------------------------------------------
// <auto-generated>
//     Dieser Code wurde von einem Tool generiert.
//     Laufzeitversion:4.0.30319.1
//
//     Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
//     der Code erneut generiert wird.
// </auto-generated>
//------------------------------------------------------------------------------

// 
// This code was auto-generated by Microsoft.Silverlight.Phone.ServiceReference, version 3.7.0.0
// 
namespace BingMaps.RouteService {
    using System.Runtime.Serialization;
    
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="RequestBase", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(BingMaps.RouteService.MajorRoutesRequest))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(BingMaps.RouteService.RouteRequest))]
    public partial class RequestBase : object, System.ComponentModel.INotifyPropertyChanged {
        
        private Microsoft.Phone.Controls.Maps.Credentials CredentialsField;
        
        private string CultureField;
        
        private BingMaps.RouteService.ExecutionOptions ExecutionOptionsField;
        
        private BingMaps.RouteService.UserProfile UserProfileField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public Microsoft.Phone.Controls.Maps.Credentials Credentials {
            get {
                return this.CredentialsField;
            }
            set {
                if ((object.ReferenceEquals(this.CredentialsField, value) != true)) {
                    this.CredentialsField = value;
                    this.RaisePropertyChanged("Credentials");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string Culture {
            get {
                return this.CultureField;
            }
            set {
                if ((object.ReferenceEquals(this.CultureField, value) != true)) {
                    this.CultureField = value;
                    this.RaisePropertyChanged("Culture");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public BingMaps.RouteService.ExecutionOptions ExecutionOptions {
            get {
                return this.ExecutionOptionsField;
            }
            set {
                if ((object.ReferenceEquals(this.ExecutionOptionsField, value) != true)) {
                    this.ExecutionOptionsField = value;
                    this.RaisePropertyChanged("ExecutionOptions");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public BingMaps.RouteService.UserProfile UserProfile {
            get {
                return this.UserProfileField;
            }
            set {
                if ((object.ReferenceEquals(this.UserProfileField, value) != true)) {
                    this.UserProfileField = value;
                    this.RaisePropertyChanged("UserProfile");
                }
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="ExecutionOptions", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    public partial class ExecutionOptions : object, System.ComponentModel.INotifyPropertyChanged {
        
        private bool SuppressFaultsField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public bool SuppressFaults {
            get {
                return this.SuppressFaultsField;
            }
            set {
                if ((this.SuppressFaultsField.Equals(value) != true)) {
                    this.SuppressFaultsField = value;
                    this.RaisePropertyChanged("SuppressFaults");
                }
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="UserProfile", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(Microsoft.Phone.Controls.Maps.Platform.Rectangle))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(BingMaps.RouteService.Circle))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(BingMaps.RouteService.Polygon))]
    public partial class UserProfile : object, System.ComponentModel.INotifyPropertyChanged {
        
        private BingMaps.RouteService.Heading CurrentHeadingField;
        
        private BingMaps.RouteService.UserLocation CurrentLocationField;
        
        private BingMaps.RouteService.DeviceType DeviceTypeField;
        
        private BingMaps.RouteService.DistanceUnit DistanceUnitField;
        
        private string IPAddressField;
        
        private Microsoft.Phone.Controls.Maps.Platform.ShapeBase MapViewField;
        
        private BingMaps.RouteService.SizeOfint ScreenSizeField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public BingMaps.RouteService.Heading CurrentHeading {
            get {
                return this.CurrentHeadingField;
            }
            set {
                if ((object.ReferenceEquals(this.CurrentHeadingField, value) != true)) {
                    this.CurrentHeadingField = value;
                    this.RaisePropertyChanged("CurrentHeading");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public BingMaps.RouteService.UserLocation CurrentLocation {
            get {
                return this.CurrentLocationField;
            }
            set {
                if ((object.ReferenceEquals(this.CurrentLocationField, value) != true)) {
                    this.CurrentLocationField = value;
                    this.RaisePropertyChanged("CurrentLocation");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public BingMaps.RouteService.DeviceType DeviceType {
            get {
                return this.DeviceTypeField;
            }
            set {
                if ((this.DeviceTypeField.Equals(value) != true)) {
                    this.DeviceTypeField = value;
                    this.RaisePropertyChanged("DeviceType");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public BingMaps.RouteService.DistanceUnit DistanceUnit {
            get {
                return this.DistanceUnitField;
            }
            set {
                if ((this.DistanceUnitField.Equals(value) != true)) {
                    this.DistanceUnitField = value;
                    this.RaisePropertyChanged("DistanceUnit");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string IPAddress {
            get {
                return this.IPAddressField;
            }
            set {
                if ((object.ReferenceEquals(this.IPAddressField, value) != true)) {
                    this.IPAddressField = value;
                    this.RaisePropertyChanged("IPAddress");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public Microsoft.Phone.Controls.Maps.Platform.ShapeBase MapView {
            get {
                return this.MapViewField;
            }
            set {
                if ((object.ReferenceEquals(this.MapViewField, value) != true)) {
                    this.MapViewField = value;
                    this.RaisePropertyChanged("MapView");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public BingMaps.RouteService.SizeOfint ScreenSize {
            get {
                return this.ScreenSizeField;
            }
            set {
                if ((object.ReferenceEquals(this.ScreenSizeField, value) != true)) {
                    this.ScreenSizeField = value;
                    this.RaisePropertyChanged("ScreenSize");
                }
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="MajorRoutesRequest", Namespace="http://dev.virtualearth.net/webservices/v1/route")]
    public partial class MajorRoutesRequest : BingMaps.RouteService.RequestBase {
        
        private BingMaps.RouteService.Waypoint DestinationField;
        
        private BingMaps.RouteService.MajorRoutesOptions OptionsField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public BingMaps.RouteService.Waypoint Destination {
            get {
                return this.DestinationField;
            }
            set {
                if ((object.ReferenceEquals(this.DestinationField, value) != true)) {
                    this.DestinationField = value;
                    this.RaisePropertyChanged("Destination");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public BingMaps.RouteService.MajorRoutesOptions Options {
            get {
                return this.OptionsField;
            }
            set {
                if ((object.ReferenceEquals(this.OptionsField, value) != true)) {
                    this.OptionsField = value;
                    this.RaisePropertyChanged("Options");
                }
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="RouteRequest", Namespace="http://dev.virtualearth.net/webservices/v1/route")]
    public partial class RouteRequest : BingMaps.RouteService.RequestBase {
        
        private BingMaps.RouteService.RouteOptions OptionsField;
        
        private System.Collections.ObjectModel.ObservableCollection<BingMaps.RouteService.Waypoint> WaypointsField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public BingMaps.RouteService.RouteOptions Options {
            get {
                return this.OptionsField;
            }
            set {
                if ((object.ReferenceEquals(this.OptionsField, value) != true)) {
                    this.OptionsField = value;
                    this.RaisePropertyChanged("Options");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public System.Collections.ObjectModel.ObservableCollection<BingMaps.RouteService.Waypoint> Waypoints {
            get {
                return this.WaypointsField;
            }
            set {
                if ((object.ReferenceEquals(this.WaypointsField, value) != true)) {
                    this.WaypointsField = value;
                    this.RaisePropertyChanged("Waypoints");
                }
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="RouteOptions", Namespace="http://dev.virtualearth.net/webservices/v1/route")]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(BingMaps.RouteService.MajorRoutesOptions))]
    public partial class RouteOptions : object, System.ComponentModel.INotifyPropertyChanged {
        
        private BingMaps.RouteService.TravelMode ModeField;
        
        private BingMaps.RouteService.RouteOptimization OptimizationField;
        
        private BingMaps.RouteService.RoutePathType RoutePathTypeField;
        
        private BingMaps.RouteService.TrafficUsage TrafficUsageField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public BingMaps.RouteService.TravelMode Mode {
            get {
                return this.ModeField;
            }
            set {
                if ((this.ModeField.Equals(value) != true)) {
                    this.ModeField = value;
                    this.RaisePropertyChanged("Mode");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public BingMaps.RouteService.RouteOptimization Optimization {
            get {
                return this.OptimizationField;
            }
            set {
                if ((this.OptimizationField.Equals(value) != true)) {
                    this.OptimizationField = value;
                    this.RaisePropertyChanged("Optimization");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public BingMaps.RouteService.RoutePathType RoutePathType {
            get {
                return this.RoutePathTypeField;
            }
            set {
                if ((this.RoutePathTypeField.Equals(value) != true)) {
                    this.RoutePathTypeField = value;
                    this.RaisePropertyChanged("RoutePathType");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public BingMaps.RouteService.TrafficUsage TrafficUsage {
            get {
                return this.TrafficUsageField;
            }
            set {
                if ((this.TrafficUsageField.Equals(value) != true)) {
                    this.TrafficUsageField = value;
                    this.RaisePropertyChanged("TrafficUsage");
                }
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="Waypoint", Namespace="http://dev.virtualearth.net/webservices/v1/route")]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(BingMaps.RouteService.GeocodeLocation))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(BingMaps.RouteService.UserLocation))]
    public partial class Waypoint : object, System.ComponentModel.INotifyPropertyChanged {
        
        private string DescriptionField;
        
        private Microsoft.Phone.Controls.Maps.Platform.Location LocationField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string Description {
            get {
                return this.DescriptionField;
            }
            set {
                if ((object.ReferenceEquals(this.DescriptionField, value) != true)) {
                    this.DescriptionField = value;
                    this.RaisePropertyChanged("Description");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public Microsoft.Phone.Controls.Maps.Platform.Location Location {
            get {
                return this.LocationField;
            }
            set {
                if ((object.ReferenceEquals(this.LocationField, value) != true)) {
                    this.LocationField = value;
                    this.RaisePropertyChanged("Location");
                }
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="Heading", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    public partial class Heading : object, System.ComponentModel.INotifyPropertyChanged {
        
        private double OrientationField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public double Orientation {
            get {
                return this.OrientationField;
            }
            set {
                if ((this.OrientationField.Equals(value) != true)) {
                    this.OrientationField = value;
                    this.RaisePropertyChanged("Orientation");
                }
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="UserLocation", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    public partial class UserLocation : Microsoft.Phone.Controls.Maps.Platform.Location, System.ComponentModel.INotifyPropertyChanged {
        
        private BingMaps.RouteService.Confidence ConfidenceField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public BingMaps.RouteService.Confidence Confidence {
            get {
                return this.ConfidenceField;
            }
            set {
                if ((this.ConfidenceField.Equals(value) != true)) {
                    this.ConfidenceField = value;
                    this.RaisePropertyChanged("Confidence");
                }
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="SizeOfint", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    public partial class SizeOfint : object, System.ComponentModel.INotifyPropertyChanged {
        
        private int HeightField;
        
        private int WidthField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public int Height {
            get {
                return this.HeightField;
            }
            set {
                if ((this.HeightField.Equals(value) != true)) {
                    this.HeightField = value;
                    this.RaisePropertyChanged("Height");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public int Width {
            get {
                return this.WidthField;
            }
            set {
                if ((this.WidthField.Equals(value) != true)) {
                    this.WidthField = value;
                    this.RaisePropertyChanged("Width");
                }
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="Circle", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(BingMaps.RouteService.GeocodeLocation))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(BingMaps.RouteService.UserLocation))]
    public partial class Circle : Microsoft.Phone.Controls.Maps.Platform.ShapeBase, System.ComponentModel.INotifyPropertyChanged {
        
        private Microsoft.Phone.Controls.Maps.Platform.Location CenterField;
        
        private BingMaps.RouteService.DistanceUnit DistanceUnitField;
        
        private double RadiusField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public Microsoft.Phone.Controls.Maps.Platform.Location Center {
            get {
                return this.CenterField;
            }
            set {
                if ((object.ReferenceEquals(this.CenterField, value) != true)) {
                    this.CenterField = value;
                    this.RaisePropertyChanged("Center");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public BingMaps.RouteService.DistanceUnit DistanceUnit {
            get {
                return this.DistanceUnitField;
            }
            set {
                if ((this.DistanceUnitField.Equals(value) != true)) {
                    this.DistanceUnitField = value;
                    this.RaisePropertyChanged("DistanceUnit");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public double Radius {
            get {
                return this.RadiusField;
            }
            set {
                if ((this.RadiusField.Equals(value) != true)) {
                    this.RadiusField = value;
                    this.RaisePropertyChanged("Radius");
                }
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="Polygon", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    public partial class Polygon : Microsoft.Phone.Controls.Maps.Platform.ShapeBase, System.ComponentModel.INotifyPropertyChanged {
        
        private System.Collections.ObjectModel.ObservableCollection<Microsoft.Phone.Controls.Maps.Platform.Location> VerticesField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public System.Collections.ObjectModel.ObservableCollection<Microsoft.Phone.Controls.Maps.Platform.Location> Vertices {
            get {
                return this.VerticesField;
            }
            set {
                if ((object.ReferenceEquals(this.VerticesField, value) != true)) {
                    this.VerticesField = value;
                    this.RaisePropertyChanged("Vertices");
                }
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="DeviceType", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    public enum DeviceType : int {
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Desktop = 0,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Mobile = 1,
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="DistanceUnit", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    public enum DistanceUnit : int {
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Kilometer = 0,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Mile = 1,
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="Confidence", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    public enum Confidence : int {
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        High = 0,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Medium = 1,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Low = 2,
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="GeocodeLocation", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    public partial class GeocodeLocation : Microsoft.Phone.Controls.Maps.Platform.Location, System.ComponentModel.INotifyPropertyChanged {
        
        private string CalculationMethodField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string CalculationMethod {
            get {
                return this.CalculationMethodField;
            }
            set {
                if ((object.ReferenceEquals(this.CalculationMethodField, value) != true)) {
                    this.CalculationMethodField = value;
                    this.RaisePropertyChanged("CalculationMethod");
                }
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="MajorRoutesOptions", Namespace="http://dev.virtualearth.net/webservices/v1/route")]
    public partial class MajorRoutesOptions : BingMaps.RouteService.RouteOptions {
        
        private bool ReturnRoutesField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public bool ReturnRoutes {
            get {
                return this.ReturnRoutesField;
            }
            set {
                if ((this.ReturnRoutesField.Equals(value) != true)) {
                    this.ReturnRoutesField = value;
                    this.RaisePropertyChanged("ReturnRoutes");
                }
            }
        }
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="TravelMode", Namespace="http://dev.virtualearth.net/webservices/v1/route")]
    public enum TravelMode : int {
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Driving = 0,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Walking = 1,
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="RouteOptimization", Namespace="http://dev.virtualearth.net/webservices/v1/route")]
    public enum RouteOptimization : int {
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        MinimizeTime = 0,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        MinimizeDistance = 1,
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="RoutePathType", Namespace="http://dev.virtualearth.net/webservices/v1/route")]
    public enum RoutePathType : int {
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        None = 0,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Points = 1,
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="TrafficUsage", Namespace="http://dev.virtualearth.net/webservices/v1/route")]
    public enum TrafficUsage : int {
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        None = 0,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        TrafficBasedTime = 1,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        TrafficBasedRouteAndTime = 2,
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="ResponseBase", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(BingMaps.RouteService.MajorRoutesResponse))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(BingMaps.RouteService.RouteResponse))]
    public partial class ResponseBase : object, System.ComponentModel.INotifyPropertyChanged {
        
        private System.Uri BrandLogoUriField;
        
        private BingMaps.RouteService.ResponseSummary ResponseSummaryField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public System.Uri BrandLogoUri {
            get {
                return this.BrandLogoUriField;
            }
            set {
                if ((object.ReferenceEquals(this.BrandLogoUriField, value) != true)) {
                    this.BrandLogoUriField = value;
                    this.RaisePropertyChanged("BrandLogoUri");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public BingMaps.RouteService.ResponseSummary ResponseSummary {
            get {
                return this.ResponseSummaryField;
            }
            set {
                if ((object.ReferenceEquals(this.ResponseSummaryField, value) != true)) {
                    this.ResponseSummaryField = value;
                    this.RaisePropertyChanged("ResponseSummary");
                }
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="ResponseSummary", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    public partial class ResponseSummary : object, System.ComponentModel.INotifyPropertyChanged {
        
        private BingMaps.RouteService.AuthenticationResultCode AuthenticationResultCodeField;
        
        private string CopyrightField;
        
        private string FaultReasonField;
        
        private BingMaps.RouteService.ResponseStatusCode StatusCodeField;
        
        private string TraceIdField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public BingMaps.RouteService.AuthenticationResultCode AuthenticationResultCode {
            get {
                return this.AuthenticationResultCodeField;
            }
            set {
                if ((this.AuthenticationResultCodeField.Equals(value) != true)) {
                    this.AuthenticationResultCodeField = value;
                    this.RaisePropertyChanged("AuthenticationResultCode");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string Copyright {
            get {
                return this.CopyrightField;
            }
            set {
                if ((object.ReferenceEquals(this.CopyrightField, value) != true)) {
                    this.CopyrightField = value;
                    this.RaisePropertyChanged("Copyright");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string FaultReason {
            get {
                return this.FaultReasonField;
            }
            set {
                if ((object.ReferenceEquals(this.FaultReasonField, value) != true)) {
                    this.FaultReasonField = value;
                    this.RaisePropertyChanged("FaultReason");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public BingMaps.RouteService.ResponseStatusCode StatusCode {
            get {
                return this.StatusCodeField;
            }
            set {
                if ((this.StatusCodeField.Equals(value) != true)) {
                    this.StatusCodeField = value;
                    this.RaisePropertyChanged("StatusCode");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string TraceId {
            get {
                return this.TraceIdField;
            }
            set {
                if ((object.ReferenceEquals(this.TraceIdField, value) != true)) {
                    this.TraceIdField = value;
                    this.RaisePropertyChanged("TraceId");
                }
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="MajorRoutesResponse", Namespace="http://dev.virtualearth.net/webservices/v1/route")]
    public partial class MajorRoutesResponse : BingMaps.RouteService.ResponseBase {
        
        private System.Collections.ObjectModel.ObservableCollection<BingMaps.RouteService.RouteResult> RoutesField;
        
        private System.Collections.ObjectModel.ObservableCollection<BingMaps.RouteService.Waypoint> StartingPointsField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public System.Collections.ObjectModel.ObservableCollection<BingMaps.RouteService.RouteResult> Routes {
            get {
                return this.RoutesField;
            }
            set {
                if ((object.ReferenceEquals(this.RoutesField, value) != true)) {
                    this.RoutesField = value;
                    this.RaisePropertyChanged("Routes");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public System.Collections.ObjectModel.ObservableCollection<BingMaps.RouteService.Waypoint> StartingPoints {
            get {
                return this.StartingPointsField;
            }
            set {
                if ((object.ReferenceEquals(this.StartingPointsField, value) != true)) {
                    this.StartingPointsField = value;
                    this.RaisePropertyChanged("StartingPoints");
                }
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="RouteResponse", Namespace="http://dev.virtualearth.net/webservices/v1/route")]
    public partial class RouteResponse : BingMaps.RouteService.ResponseBase {
        
        private BingMaps.RouteService.RouteResult ResultField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public BingMaps.RouteService.RouteResult Result {
            get {
                return this.ResultField;
            }
            set {
                if ((object.ReferenceEquals(this.ResultField, value) != true)) {
                    this.ResultField = value;
                    this.RaisePropertyChanged("Result");
                }
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="RouteResult", Namespace="http://dev.virtualearth.net/webservices/v1/route")]
    public partial class RouteResult : object, System.ComponentModel.INotifyPropertyChanged {
        
        private System.Collections.ObjectModel.ObservableCollection<BingMaps.RouteService.RouteLeg> LegsField;
        
        private BingMaps.RouteService.RoutePath RoutePathField;
        
        private BingMaps.RouteService.RouteSummary SummaryField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public System.Collections.ObjectModel.ObservableCollection<BingMaps.RouteService.RouteLeg> Legs {
            get {
                return this.LegsField;
            }
            set {
                if ((object.ReferenceEquals(this.LegsField, value) != true)) {
                    this.LegsField = value;
                    this.RaisePropertyChanged("Legs");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public BingMaps.RouteService.RoutePath RoutePath {
            get {
                return this.RoutePathField;
            }
            set {
                if ((object.ReferenceEquals(this.RoutePathField, value) != true)) {
                    this.RoutePathField = value;
                    this.RaisePropertyChanged("RoutePath");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public BingMaps.RouteService.RouteSummary Summary {
            get {
                return this.SummaryField;
            }
            set {
                if ((object.ReferenceEquals(this.SummaryField, value) != true)) {
                    this.SummaryField = value;
                    this.RaisePropertyChanged("Summary");
                }
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="AuthenticationResultCode", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    public enum AuthenticationResultCode : int {
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        None = 0,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        NoCredentials = 1,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        ValidCredentials = 2,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        InvalidCredentials = 3,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        CredentialsExpired = 4,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        NotAuthorized = 7,
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="ResponseStatusCode", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    public enum ResponseStatusCode : int {
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Success = 0,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        BadRequest = 1,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        ServerError = 2,
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="RoutePath", Namespace="http://dev.virtualearth.net/webservices/v1/route")]
    public partial class RoutePath : object, System.ComponentModel.INotifyPropertyChanged {
        
        private System.Collections.ObjectModel.ObservableCollection<Microsoft.Phone.Controls.Maps.Platform.Location> PointsField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public System.Collections.ObjectModel.ObservableCollection<Microsoft.Phone.Controls.Maps.Platform.Location> Points {
            get {
                return this.PointsField;
            }
            set {
                if ((object.ReferenceEquals(this.PointsField, value) != true)) {
                    this.PointsField = value;
                    this.RaisePropertyChanged("Points");
                }
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="RouteSummary", Namespace="http://dev.virtualearth.net/webservices/v1/route")]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(BingMaps.RouteService.GeocodeLocation))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(BingMaps.RouteService.UserLocation))]
    public partial class RouteSummary : object, System.ComponentModel.INotifyPropertyChanged {
        
        private Microsoft.Phone.Controls.Maps.Platform.Rectangle BoundingRectangleField;
        
        private double DistanceField;
        
        private long TimeInSecondsField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public Microsoft.Phone.Controls.Maps.Platform.Rectangle BoundingRectangle {
            get {
                return this.BoundingRectangleField;
            }
            set {
                if ((object.ReferenceEquals(this.BoundingRectangleField, value) != true)) {
                    this.BoundingRectangleField = value;
                    this.RaisePropertyChanged("BoundingRectangle");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public double Distance {
            get {
                return this.DistanceField;
            }
            set {
                if ((this.DistanceField.Equals(value) != true)) {
                    this.DistanceField = value;
                    this.RaisePropertyChanged("Distance");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public long TimeInSeconds {
            get {
                return this.TimeInSecondsField;
            }
            set {
                if ((this.TimeInSecondsField.Equals(value) != true)) {
                    this.TimeInSecondsField = value;
                    this.RaisePropertyChanged("TimeInSeconds");
                }
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="RouteLeg", Namespace="http://dev.virtualearth.net/webservices/v1/route")]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(BingMaps.RouteService.GeocodeLocation))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(BingMaps.RouteService.UserLocation))]
    public partial class RouteLeg : object, System.ComponentModel.INotifyPropertyChanged {
        
        private Microsoft.Phone.Controls.Maps.Platform.Location ActualEndField;
        
        private Microsoft.Phone.Controls.Maps.Platform.Location ActualStartField;
        
        private System.Collections.ObjectModel.ObservableCollection<BingMaps.RouteService.ItineraryItem> ItineraryField;
        
        private BingMaps.RouteService.RouteSummary SummaryField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public Microsoft.Phone.Controls.Maps.Platform.Location ActualEnd {
            get {
                return this.ActualEndField;
            }
            set {
                if ((object.ReferenceEquals(this.ActualEndField, value) != true)) {
                    this.ActualEndField = value;
                    this.RaisePropertyChanged("ActualEnd");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public Microsoft.Phone.Controls.Maps.Platform.Location ActualStart {
            get {
                return this.ActualStartField;
            }
            set {
                if ((object.ReferenceEquals(this.ActualStartField, value) != true)) {
                    this.ActualStartField = value;
                    this.RaisePropertyChanged("ActualStart");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public System.Collections.ObjectModel.ObservableCollection<BingMaps.RouteService.ItineraryItem> Itinerary {
            get {
                return this.ItineraryField;
            }
            set {
                if ((object.ReferenceEquals(this.ItineraryField, value) != true)) {
                    this.ItineraryField = value;
                    this.RaisePropertyChanged("Itinerary");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public BingMaps.RouteService.RouteSummary Summary {
            get {
                return this.SummaryField;
            }
            set {
                if ((object.ReferenceEquals(this.SummaryField, value) != true)) {
                    this.SummaryField = value;
                    this.RaisePropertyChanged("Summary");
                }
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="ItineraryItem", Namespace="http://dev.virtualearth.net/webservices/v1/route")]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(BingMaps.RouteService.GeocodeLocation))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(BingMaps.RouteService.UserLocation))]
    public partial class ItineraryItem : object, System.ComponentModel.INotifyPropertyChanged {
        
        private string CompassDirectionField;
        
        private System.Collections.ObjectModel.ObservableCollection<BingMaps.RouteService.ItineraryItemHint> HintsField;
        
        private Microsoft.Phone.Controls.Maps.Platform.Location LocationField;
        
        private BingMaps.RouteService.ManeuverType ManeuverTypeField;
        
        private BingMaps.RouteService.RouteSummary SummaryField;
        
        private string TextField;
        
        private System.Collections.ObjectModel.ObservableCollection<BingMaps.RouteService.ItineraryItemWarning> WarningsField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string CompassDirection {
            get {
                return this.CompassDirectionField;
            }
            set {
                if ((object.ReferenceEquals(this.CompassDirectionField, value) != true)) {
                    this.CompassDirectionField = value;
                    this.RaisePropertyChanged("CompassDirection");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public System.Collections.ObjectModel.ObservableCollection<BingMaps.RouteService.ItineraryItemHint> Hints {
            get {
                return this.HintsField;
            }
            set {
                if ((object.ReferenceEquals(this.HintsField, value) != true)) {
                    this.HintsField = value;
                    this.RaisePropertyChanged("Hints");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public Microsoft.Phone.Controls.Maps.Platform.Location Location {
            get {
                return this.LocationField;
            }
            set {
                if ((object.ReferenceEquals(this.LocationField, value) != true)) {
                    this.LocationField = value;
                    this.RaisePropertyChanged("Location");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public BingMaps.RouteService.ManeuverType ManeuverType {
            get {
                return this.ManeuverTypeField;
            }
            set {
                if ((this.ManeuverTypeField.Equals(value) != true)) {
                    this.ManeuverTypeField = value;
                    this.RaisePropertyChanged("ManeuverType");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public BingMaps.RouteService.RouteSummary Summary {
            get {
                return this.SummaryField;
            }
            set {
                if ((object.ReferenceEquals(this.SummaryField, value) != true)) {
                    this.SummaryField = value;
                    this.RaisePropertyChanged("Summary");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string Text {
            get {
                return this.TextField;
            }
            set {
                if ((object.ReferenceEquals(this.TextField, value) != true)) {
                    this.TextField = value;
                    this.RaisePropertyChanged("Text");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public System.Collections.ObjectModel.ObservableCollection<BingMaps.RouteService.ItineraryItemWarning> Warnings {
            get {
                return this.WarningsField;
            }
            set {
                if ((object.ReferenceEquals(this.WarningsField, value) != true)) {
                    this.WarningsField = value;
                    this.RaisePropertyChanged("Warnings");
                }
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="ItineraryItemHint", Namespace="http://dev.virtualearth.net/webservices/v1/route")]
    public partial class ItineraryItemHint : object, System.ComponentModel.INotifyPropertyChanged {
        
        private BingMaps.RouteService.ItineraryItemHintType HintTypeField;
        
        private string TextField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public BingMaps.RouteService.ItineraryItemHintType HintType {
            get {
                return this.HintTypeField;
            }
            set {
                if ((this.HintTypeField.Equals(value) != true)) {
                    this.HintTypeField = value;
                    this.RaisePropertyChanged("HintType");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string Text {
            get {
                return this.TextField;
            }
            set {
                if ((object.ReferenceEquals(this.TextField, value) != true)) {
                    this.TextField = value;
                    this.RaisePropertyChanged("Text");
                }
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="ManeuverType", Namespace="http://dev.virtualearth.net/webservices/v1/route")]
    public enum ManeuverType : int {
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        None = 0,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Unknown = 1,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        DepartStart = 2,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        DepartIntermediateStop = 3,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        DepartIntermediateStopReturning = 4,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        ArriveFinish = 5,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        ArriveIntermediateStop = 6,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        TurnLeft = 7,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        TurnRight = 8,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        TurnBack = 9,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        UTurn = 10,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        TurnToStayLeft = 11,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        TurnToStayRight = 12,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        BearLeft = 13,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        BearRight = 14,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        KeepToStayLeft = 15,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        KeepToStayRight = 16,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        KeepToStayStraight = 17,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        KeepLeft = 18,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        KeepRight = 19,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        KeepStraight = 20,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Take = 21,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        TakeRampLeft = 22,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        TakeRampRight = 23,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        TakeRampStraight = 24,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        KeepOnrampLeft = 25,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        KeepOnrampRight = 26,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        KeepOnrampStraight = 27,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Merge = 28,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Continue = 29,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        RoadNameChange = 30,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        EnterRoundabout = 31,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        ExitRoundabout = 32,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        TurnRightThenTurnRight = 33,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        TurnRightThenTurnLeft = 34,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        TurnRightThenBearRight = 35,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        TurnRightThenBearLeft = 36,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        TurnLeftThenTurnLeft = 37,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        TurnLeftThenTurnRight = 38,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        TurnLeftThenBearLeft = 39,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        TurnLeftThenBearRight = 40,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        BearRightThenTurnRight = 41,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        BearRightThenTurnLeft = 42,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        BearRightThenBearRight = 43,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        BearRightThenBearLeft = 44,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        BearLeftThenTurnLeft = 45,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        BearLeftThenTurnRight = 46,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        BearLeftThenBearRight = 47,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        BearLeftThenBearLeft = 48,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        RampThenHighwayRight = 49,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        RampThenHighwayLeft = 50,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        RampToHighwayStraight = 51,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        EnterThenExitRoundabout = 52,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        BearThenMerge = 53,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        TurnThenMerge = 54,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        BearThenKeep = 55,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Transfer = 56,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Wait = 57,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        TakeTransit = 58,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Walk = 59,
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="ItineraryItemWarning", Namespace="http://dev.virtualearth.net/webservices/v1/route")]
    public partial class ItineraryItemWarning : object, System.ComponentModel.INotifyPropertyChanged {
        
        private BingMaps.RouteService.ItineraryWarningSeverity SeverityField;
        
        private string TextField;
        
        private BingMaps.RouteService.ItineraryWarningType WarningTypeField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public BingMaps.RouteService.ItineraryWarningSeverity Severity {
            get {
                return this.SeverityField;
            }
            set {
                if ((this.SeverityField.Equals(value) != true)) {
                    this.SeverityField = value;
                    this.RaisePropertyChanged("Severity");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string Text {
            get {
                return this.TextField;
            }
            set {
                if ((object.ReferenceEquals(this.TextField, value) != true)) {
                    this.TextField = value;
                    this.RaisePropertyChanged("Text");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public BingMaps.RouteService.ItineraryWarningType WarningType {
            get {
                return this.WarningTypeField;
            }
            set {
                if ((this.WarningTypeField.Equals(value) != true)) {
                    this.WarningTypeField = value;
                    this.RaisePropertyChanged("WarningType");
                }
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="ItineraryItemHintType", Namespace="http://dev.virtualearth.net/webservices/v1/route")]
    public enum ItineraryItemHintType : int {
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        PreviousIntersection = 0,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        NextIntersection = 1,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Landmark = 2,
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="ItineraryWarningSeverity", Namespace="http://dev.virtualearth.net/webservices/v1/route")]
    public enum ItineraryWarningSeverity : int {
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        None = 0,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        LowImpact = 1,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Minor = 2,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Moderate = 3,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Serious = 4,
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="ItineraryWarningType", Namespace="http://dev.virtualearth.net/webservices/v1/route")]
    public enum ItineraryWarningType : int {
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Accident = 0,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        AdminDivisionChange = 1,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        BlockedRoad = 2,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        CheckTimetable = 3,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Congestion = 4,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        CountryChange = 5,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        DisabledVehicle = 6,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        GateAccess = 7,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        GetOffTransit = 8,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        GetOnTransit = 9,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        IllegalUTurn = 10,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        MassTransit = 11,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Miscellaneous = 12,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        NoIncident = 13,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        None = 14,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Other = 15,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        OtherNews = 16,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        OtherTrafficIncidents = 17,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        PlannedEvent = 18,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        PrivateRoad = 19,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        RestrictedTurn = 20,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        RoadClosures = 21,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        RoadHazard = 22,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        ScheduledConstruction = 23,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        SeasonalClosures = 24,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Tollbooth = 25,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        TollRoad = 26,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        TrafficFlow = 27,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        UnpavedRoad = 28,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        UnscheduledConstruction = 29,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Weather = 30,
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ServiceModel.ServiceContractAttribute(Namespace="http://dev.virtualearth.net/webservices/v1/route/contracts", ConfigurationName="RouteService.IRouteService")]
    public interface IRouteService {
        
        [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://dev.virtualearth.net/webservices/v1/route/contracts/IRouteService/Calculat" +
            "eRoute", ReplyAction="http://dev.virtualearth.net/webservices/v1/route/contracts/IRouteService/Calculat" +
            "eRouteResponse")]
        [System.ServiceModel.FaultContractAttribute(typeof(BingMaps.RouteService.ResponseSummary), Action="http://dev.virtualearth.net/webservices/v1/route/contracts/IRouteService/Calculat" +
            "eRouteResponseSummaryFault", Name="ResponseSummary", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
        System.IAsyncResult BeginCalculateRoute(BingMaps.RouteService.RouteRequest request, System.AsyncCallback callback, object asyncState);
        
        BingMaps.RouteService.RouteResponse EndCalculateRoute(System.IAsyncResult result);
        
        [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://dev.virtualearth.net/webservices/v1/route/contracts/IRouteService/Calculat" +
            "eRoutesFromMajorRoads", ReplyAction="http://dev.virtualearth.net/webservices/v1/route/contracts/IRouteService/Calculat" +
            "eRoutesFromMajorRoadsResponse")]
        [System.ServiceModel.FaultContractAttribute(typeof(BingMaps.RouteService.ResponseSummary), Action="http://dev.virtualearth.net/webservices/v1/route/contracts/IRouteService/Calculat" +
            "eRoutesFromMajorRoadsResponseSummaryFault", Name="ResponseSummary", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
        System.IAsyncResult BeginCalculateRoutesFromMajorRoads(BingMaps.RouteService.MajorRoutesRequest request, System.AsyncCallback callback, object asyncState);
        
        BingMaps.RouteService.MajorRoutesResponse EndCalculateRoutesFromMajorRoads(System.IAsyncResult result);
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    public interface IRouteServiceChannel : BingMaps.RouteService.IRouteService, System.ServiceModel.IClientChannel {
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    public partial class CalculateRouteCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        public CalculateRouteCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        public BingMaps.RouteService.RouteResponse Result {
            get {
                base.RaiseExceptionIfNecessary();
                return ((BingMaps.RouteService.RouteResponse)(this.results[0]));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    public partial class CalculateRoutesFromMajorRoadsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        public CalculateRoutesFromMajorRoadsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        public BingMaps.RouteService.MajorRoutesResponse Result {
            get {
                base.RaiseExceptionIfNecessary();
                return ((BingMaps.RouteService.MajorRoutesResponse)(this.results[0]));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    public partial class RouteServiceClient : System.ServiceModel.ClientBase<BingMaps.RouteService.IRouteService>, BingMaps.RouteService.IRouteService {
        
        private BeginOperationDelegate onBeginCalculateRouteDelegate;
        
        private EndOperationDelegate onEndCalculateRouteDelegate;
        
        private System.Threading.SendOrPostCallback onCalculateRouteCompletedDelegate;
        
        private BeginOperationDelegate onBeginCalculateRoutesFromMajorRoadsDelegate;
        
        private EndOperationDelegate onEndCalculateRoutesFromMajorRoadsDelegate;
        
        private System.Threading.SendOrPostCallback onCalculateRoutesFromMajorRoadsCompletedDelegate;
        
        private BeginOperationDelegate onBeginOpenDelegate;
        
        private EndOperationDelegate onEndOpenDelegate;
        
        private System.Threading.SendOrPostCallback onOpenCompletedDelegate;
        
        private BeginOperationDelegate onBeginCloseDelegate;
        
        private EndOperationDelegate onEndCloseDelegate;
        
        private System.Threading.SendOrPostCallback onCloseCompletedDelegate;
        
        public RouteServiceClient() {
        }
        
        public RouteServiceClient(string endpointConfigurationName) : 
                base(endpointConfigurationName) {
        }
        
        public RouteServiceClient(string endpointConfigurationName, string remoteAddress) : 
                base(endpointConfigurationName, remoteAddress) {
        }
        
        public RouteServiceClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) : 
                base(endpointConfigurationName, remoteAddress) {
        }
        
        public RouteServiceClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) : 
                base(binding, remoteAddress) {
        }
        
        public System.Net.CookieContainer CookieContainer {
            get {
                System.ServiceModel.Channels.IHttpCookieContainerManager httpCookieContainerManager = this.InnerChannel.GetProperty<System.ServiceModel.Channels.IHttpCookieContainerManager>();
                if ((httpCookieContainerManager != null)) {
                    return httpCookieContainerManager.CookieContainer;
                }
                else {
                    return null;
                }
            }
            set {
                System.ServiceModel.Channels.IHttpCookieContainerManager httpCookieContainerManager = this.InnerChannel.GetProperty<System.ServiceModel.Channels.IHttpCookieContainerManager>();
                if ((httpCookieContainerManager != null)) {
                    httpCookieContainerManager.CookieContainer = value;
                }
                else {
                    throw new System.InvalidOperationException("Unable to set the CookieContainer. Please make sure the binding contains an HttpC" +
                            "ookieContainerBindingElement.");
                }
            }
        }
        
        public event System.EventHandler<CalculateRouteCompletedEventArgs> CalculateRouteCompleted;
        
        public event System.EventHandler<CalculateRoutesFromMajorRoadsCompletedEventArgs> CalculateRoutesFromMajorRoadsCompleted;
        
        public event System.EventHandler<System.ComponentModel.AsyncCompletedEventArgs> OpenCompleted;
        
        public event System.EventHandler<System.ComponentModel.AsyncCompletedEventArgs> CloseCompleted;
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        System.IAsyncResult BingMaps.RouteService.IRouteService.BeginCalculateRoute(BingMaps.RouteService.RouteRequest request, System.AsyncCallback callback, object asyncState) {
            return base.Channel.BeginCalculateRoute(request, callback, asyncState);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        BingMaps.RouteService.RouteResponse BingMaps.RouteService.IRouteService.EndCalculateRoute(System.IAsyncResult result) {
            return base.Channel.EndCalculateRoute(result);
        }
        
        private System.IAsyncResult OnBeginCalculateRoute(object[] inValues, System.AsyncCallback callback, object asyncState) {
            BingMaps.RouteService.RouteRequest request = ((BingMaps.RouteService.RouteRequest)(inValues[0]));
            return ((BingMaps.RouteService.IRouteService)(this)).BeginCalculateRoute(request, callback, asyncState);
        }
        
        private object[] OnEndCalculateRoute(System.IAsyncResult result) {
            BingMaps.RouteService.RouteResponse retVal = ((BingMaps.RouteService.IRouteService)(this)).EndCalculateRoute(result);
            return new object[] {
                    retVal};
        }
        
        private void OnCalculateRouteCompleted(object state) {
            if ((this.CalculateRouteCompleted != null)) {
                InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
                this.CalculateRouteCompleted(this, new CalculateRouteCompletedEventArgs(e.Results, e.Error, e.Cancelled, e.UserState));
            }
        }
        
        public void CalculateRouteAsync(BingMaps.RouteService.RouteRequest request) {
            this.CalculateRouteAsync(request, null);
        }
        
        public void CalculateRouteAsync(BingMaps.RouteService.RouteRequest request, object userState) {
            if ((this.onBeginCalculateRouteDelegate == null)) {
                this.onBeginCalculateRouteDelegate = new BeginOperationDelegate(this.OnBeginCalculateRoute);
            }
            if ((this.onEndCalculateRouteDelegate == null)) {
                this.onEndCalculateRouteDelegate = new EndOperationDelegate(this.OnEndCalculateRoute);
            }
            if ((this.onCalculateRouteCompletedDelegate == null)) {
                this.onCalculateRouteCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnCalculateRouteCompleted);
            }
            base.InvokeAsync(this.onBeginCalculateRouteDelegate, new object[] {
                        request}, this.onEndCalculateRouteDelegate, this.onCalculateRouteCompletedDelegate, userState);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        System.IAsyncResult BingMaps.RouteService.IRouteService.BeginCalculateRoutesFromMajorRoads(BingMaps.RouteService.MajorRoutesRequest request, System.AsyncCallback callback, object asyncState) {
            return base.Channel.BeginCalculateRoutesFromMajorRoads(request, callback, asyncState);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        BingMaps.RouteService.MajorRoutesResponse BingMaps.RouteService.IRouteService.EndCalculateRoutesFromMajorRoads(System.IAsyncResult result) {
            return base.Channel.EndCalculateRoutesFromMajorRoads(result);
        }
        
        private System.IAsyncResult OnBeginCalculateRoutesFromMajorRoads(object[] inValues, System.AsyncCallback callback, object asyncState) {
            BingMaps.RouteService.MajorRoutesRequest request = ((BingMaps.RouteService.MajorRoutesRequest)(inValues[0]));
            return ((BingMaps.RouteService.IRouteService)(this)).BeginCalculateRoutesFromMajorRoads(request, callback, asyncState);
        }
        
        private object[] OnEndCalculateRoutesFromMajorRoads(System.IAsyncResult result) {
            BingMaps.RouteService.MajorRoutesResponse retVal = ((BingMaps.RouteService.IRouteService)(this)).EndCalculateRoutesFromMajorRoads(result);
            return new object[] {
                    retVal};
        }
        
        private void OnCalculateRoutesFromMajorRoadsCompleted(object state) {
            if ((this.CalculateRoutesFromMajorRoadsCompleted != null)) {
                InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
                this.CalculateRoutesFromMajorRoadsCompleted(this, new CalculateRoutesFromMajorRoadsCompletedEventArgs(e.Results, e.Error, e.Cancelled, e.UserState));
            }
        }
        
        public void CalculateRoutesFromMajorRoadsAsync(BingMaps.RouteService.MajorRoutesRequest request) {
            this.CalculateRoutesFromMajorRoadsAsync(request, null);
        }
        
        public void CalculateRoutesFromMajorRoadsAsync(BingMaps.RouteService.MajorRoutesRequest request, object userState) {
            if ((this.onBeginCalculateRoutesFromMajorRoadsDelegate == null)) {
                this.onBeginCalculateRoutesFromMajorRoadsDelegate = new BeginOperationDelegate(this.OnBeginCalculateRoutesFromMajorRoads);
            }
            if ((this.onEndCalculateRoutesFromMajorRoadsDelegate == null)) {
                this.onEndCalculateRoutesFromMajorRoadsDelegate = new EndOperationDelegate(this.OnEndCalculateRoutesFromMajorRoads);
            }
            if ((this.onCalculateRoutesFromMajorRoadsCompletedDelegate == null)) {
                this.onCalculateRoutesFromMajorRoadsCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnCalculateRoutesFromMajorRoadsCompleted);
            }
            base.InvokeAsync(this.onBeginCalculateRoutesFromMajorRoadsDelegate, new object[] {
                        request}, this.onEndCalculateRoutesFromMajorRoadsDelegate, this.onCalculateRoutesFromMajorRoadsCompletedDelegate, userState);
        }
        
        private System.IAsyncResult OnBeginOpen(object[] inValues, System.AsyncCallback callback, object asyncState) {
            return ((System.ServiceModel.ICommunicationObject)(this)).BeginOpen(callback, asyncState);
        }
        
        private object[] OnEndOpen(System.IAsyncResult result) {
            ((System.ServiceModel.ICommunicationObject)(this)).EndOpen(result);
            return null;
        }
        
        private void OnOpenCompleted(object state) {
            if ((this.OpenCompleted != null)) {
                InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
                this.OpenCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(e.Error, e.Cancelled, e.UserState));
            }
        }
        
        public void OpenAsync() {
            this.OpenAsync(null);
        }
        
        public void OpenAsync(object userState) {
            if ((this.onBeginOpenDelegate == null)) {
                this.onBeginOpenDelegate = new BeginOperationDelegate(this.OnBeginOpen);
            }
            if ((this.onEndOpenDelegate == null)) {
                this.onEndOpenDelegate = new EndOperationDelegate(this.OnEndOpen);
            }
            if ((this.onOpenCompletedDelegate == null)) {
                this.onOpenCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnOpenCompleted);
            }
            base.InvokeAsync(this.onBeginOpenDelegate, null, this.onEndOpenDelegate, this.onOpenCompletedDelegate, userState);
        }
        
        private System.IAsyncResult OnBeginClose(object[] inValues, System.AsyncCallback callback, object asyncState) {
            return ((System.ServiceModel.ICommunicationObject)(this)).BeginClose(callback, asyncState);
        }
        
        private object[] OnEndClose(System.IAsyncResult result) {
            ((System.ServiceModel.ICommunicationObject)(this)).EndClose(result);
            return null;
        }
        
        private void OnCloseCompleted(object state) {
            if ((this.CloseCompleted != null)) {
                InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
                this.CloseCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(e.Error, e.Cancelled, e.UserState));
            }
        }
        
        public void CloseAsync() {
            this.CloseAsync(null);
        }
        
        public void CloseAsync(object userState) {
            if ((this.onBeginCloseDelegate == null)) {
                this.onBeginCloseDelegate = new BeginOperationDelegate(this.OnBeginClose);
            }
            if ((this.onEndCloseDelegate == null)) {
                this.onEndCloseDelegate = new EndOperationDelegate(this.OnEndClose);
            }
            if ((this.onCloseCompletedDelegate == null)) {
                this.onCloseCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnCloseCompleted);
            }
            base.InvokeAsync(this.onBeginCloseDelegate, null, this.onEndCloseDelegate, this.onCloseCompletedDelegate, userState);
        }
        
        protected override BingMaps.RouteService.IRouteService CreateChannel() {
            return new RouteServiceClientChannel(this);
        }
        
        private class RouteServiceClientChannel : ChannelBase<BingMaps.RouteService.IRouteService>, BingMaps.RouteService.IRouteService {
            
            public RouteServiceClientChannel(System.ServiceModel.ClientBase<BingMaps.RouteService.IRouteService> client) : 
                    base(client) {
            }
            
            public System.IAsyncResult BeginCalculateRoute(BingMaps.RouteService.RouteRequest request, System.AsyncCallback callback, object asyncState) {
                object[] _args = new object[1];
                _args[0] = request;
                System.IAsyncResult _result = base.BeginInvoke("CalculateRoute", _args, callback, asyncState);
                return _result;
            }
            
            public BingMaps.RouteService.RouteResponse EndCalculateRoute(System.IAsyncResult result) {
                object[] _args = new object[0];
                BingMaps.RouteService.RouteResponse _result = ((BingMaps.RouteService.RouteResponse)(base.EndInvoke("CalculateRoute", _args, result)));
                return _result;
            }
            
            public System.IAsyncResult BeginCalculateRoutesFromMajorRoads(BingMaps.RouteService.MajorRoutesRequest request, System.AsyncCallback callback, object asyncState) {
                object[] _args = new object[1];
                _args[0] = request;
                System.IAsyncResult _result = base.BeginInvoke("CalculateRoutesFromMajorRoads", _args, callback, asyncState);
                return _result;
            }
            
            public BingMaps.RouteService.MajorRoutesResponse EndCalculateRoutesFromMajorRoads(System.IAsyncResult result) {
                object[] _args = new object[0];
                BingMaps.RouteService.MajorRoutesResponse _result = ((BingMaps.RouteService.MajorRoutesResponse)(base.EndInvoke("CalculateRoutesFromMajorRoads", _args, result)));
                return _result;
            }
        }
    }
}
