//------------------------------------------------------------------------------
// 
//     This code was generated by a tool.
//     Runtime Version:4.0.30319.431
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// 
//------------------------------------------------------------------------------
namespace Excercise7.DictionarySuggestService {
    
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ServiceModel.ServiceContractAttribute(Namespace="http://services.aonaware.com/webservices/", ConfigurationName="DictionarySuggestService.DictServiceSoap")]
    public interface DictServiceSoap {
        
        [System.ServiceModel.OperationContractAttribute(Action="http://services.aonaware.com/webservices/ServerInfo", ReplyAction="*")]
        [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)]
        string ServerInfo();
        
        [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://services.aonaware.com/webservices/ServerInfo", ReplyAction="*")]
        System.IAsyncResult BeginServerInfo(System.AsyncCallback callback, object asyncState);
        
        string EndServerInfo(System.IAsyncResult result);
        
        [System.ServiceModel.OperationContractAttribute(Action="http://services.aonaware.com/webservices/DictionaryList", ReplyAction="*")]
        [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)]
        Dictionary[] DictionaryList();
        
        [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://services.aonaware.com/webservices/DictionaryList", ReplyAction="*")]
        System.IAsyncResult BeginDictionaryList(System.AsyncCallback callback, object asyncState);
        
        Dictionary[] EndDictionaryList(System.IAsyncResult result);
        
        [System.ServiceModel.OperationContractAttribute(Action="http://services.aonaware.com/webservices/DictionaryListExtended", ReplyAction="*")]
        [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)]
        Dictionary[] DictionaryListExtended();
        
        [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://services.aonaware.com/webservices/DictionaryListExtended", ReplyAction="*")]
        System.IAsyncResult BeginDictionaryListExtended(System.AsyncCallback callback, object asyncState);
        
        Dictionary[] EndDictionaryListExtended(System.IAsyncResult result);
        
        [System.ServiceModel.OperationContractAttribute(Action="http://services.aonaware.com/webservices/DictionaryInfo", ReplyAction="*")]
        [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)]
        string DictionaryInfo(string dictId);
        
        [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://services.aonaware.com/webservices/DictionaryInfo", ReplyAction="*")]
        System.IAsyncResult BeginDictionaryInfo(string dictId, System.AsyncCallback callback, object asyncState);
        
        string EndDictionaryInfo(System.IAsyncResult result);
        
        [System.ServiceModel.OperationContractAttribute(Action="http://services.aonaware.com/webservices/Define", ReplyAction="*")]
        [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)]
        Excercise7.DictionarySuggestService.WordDefinition Define(string word);
        
        [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://services.aonaware.com/webservices/Define", ReplyAction="*")]
        System.IAsyncResult BeginDefine(string word, System.AsyncCallback callback, object asyncState);
        
        Excercise7.DictionarySuggestService.WordDefinition EndDefine(System.IAsyncResult result);
        
        [System.ServiceModel.OperationContractAttribute(Action="http://services.aonaware.com/webservices/DefineInDict", ReplyAction="*")]
        [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)]
        Excercise7.DictionarySuggestService.WordDefinition DefineInDict(string dictId, string word);
        
        [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://services.aonaware.com/webservices/DefineInDict", ReplyAction="*")]
        System.IAsyncResult BeginDefineInDict(string dictId, string word, System.AsyncCallback callback, object asyncState);
        
        Excercise7.DictionarySuggestService.WordDefinition EndDefineInDict(System.IAsyncResult result);
        
        [System.ServiceModel.OperationContractAttribute(Action="http://services.aonaware.com/webservices/StrategyList", ReplyAction="*")]
        [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)]
        Strategy[] StrategyList();
        
        [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://services.aonaware.com/webservices/StrategyList", ReplyAction="*")]
        System.IAsyncResult BeginStrategyList(System.AsyncCallback callback, object asyncState);
        
        Strategy[] EndStrategyList(System.IAsyncResult result);
        
        [System.ServiceModel.OperationContractAttribute(Action="http://services.aonaware.com/webservices/Match", ReplyAction="*")]
        [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)]
        DictionaryWord[] Match(string word, string strategy);
        
        [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://services.aonaware.com/webservices/Match", ReplyAction="*")]
        System.IAsyncResult BeginMatch(string word, string strategy, System.AsyncCallback callback, object asyncState);
        
        DictionaryWord[] EndMatch(System.IAsyncResult result);
        
        [System.ServiceModel.OperationContractAttribute(Action="http://services.aonaware.com/webservices/MatchInDict", ReplyAction="*")]
        [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)]
        DictionaryWord[] MatchInDict(string dictId, string word, string strategy);
        
        [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://services.aonaware.com/webservices/MatchInDict", ReplyAction="*")]
        System.IAsyncResult BeginMatchInDict(string dictId, string word, string strategy, System.AsyncCallback callback, object asyncState);
        
        DictionaryWord[] EndMatchInDict(System.IAsyncResult result);
    }
    
    /// 
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.431")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://services.aonaware.com/webservices/")]
    public partial class Dictionary : object, System.ComponentModel.INotifyPropertyChanged {
        
        private string idField;
        
        private string nameField;
        
        /// 
        [System.Xml.Serialization.XmlElementAttribute(Order=0)]
        public string Id {
            get {
                return this.idField;
            }
            set {
                this.idField = value;
                this.RaisePropertyChanged("Id");
            }
        }
        
        /// 
        [System.Xml.Serialization.XmlElementAttribute(Order=1)]
        public string Name {
            get {
                return this.nameField;
            }
            set {
                this.nameField = value;
                this.RaisePropertyChanged("Name");
            }
        }
        
        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.Xml", "4.0.30319.431")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://services.aonaware.com/webservices/")]
    public partial class DictionaryWord : object, System.ComponentModel.INotifyPropertyChanged {
        
        private string dictionaryIdField;
        
        private string wordField;
        
        /// 
        [System.Xml.Serialization.XmlElementAttribute(Order=0)]
        public string DictionaryId {
            get {
                return this.dictionaryIdField;
            }
            set {
                this.dictionaryIdField = value;
                this.RaisePropertyChanged("DictionaryId");
            }
        }
        
        /// 
        [System.Xml.Serialization.XmlElementAttribute(Order=1)]
        public string Word {
            get {
                return this.wordField;
            }
            set {
                this.wordField = value;
                this.RaisePropertyChanged("Word");
            }
        }
        
        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.Xml", "4.0.30319.431")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://services.aonaware.com/webservices/")]
    public partial class Strategy : object, System.ComponentModel.INotifyPropertyChanged {
        
        private string idField;
        
        private string descriptionField;
        
        /// 
        [System.Xml.Serialization.XmlElementAttribute(Order=0)]
        public string Id {
            get {
                return this.idField;
            }
            set {
                this.idField = value;
                this.RaisePropertyChanged("Id");
            }
        }
        
        /// 
        [System.Xml.Serialization.XmlElementAttribute(Order=1)]
        public string Description {
            get {
                return this.descriptionField;
            }
            set {
                this.descriptionField = value;
                this.RaisePropertyChanged("Description");
            }
        }
        
        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.Xml", "4.0.30319.431")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://services.aonaware.com/webservices/")]
    public partial class Definition : object, System.ComponentModel.INotifyPropertyChanged {
        
        private string wordField;
        
        private Dictionary dictionaryField;
        
        private string wordDefinitionField;
        
        /// 
        [System.Xml.Serialization.XmlElementAttribute(Order=0)]
        public string Word {
            get {
                return this.wordField;
            }
            set {
                this.wordField = value;
                this.RaisePropertyChanged("Word");
            }
        }
        
        /// 
        [System.Xml.Serialization.XmlElementAttribute(Order=1)]
        public Dictionary Dictionary {
            get {
                return this.dictionaryField;
            }
            set {
                this.dictionaryField = value;
                this.RaisePropertyChanged("Dictionary");
            }
        }
        
        /// 
        [System.Xml.Serialization.XmlElementAttribute(Order=2)]
        public string WordDefinition {
            get {
                return this.wordDefinitionField;
            }
            set {
                this.wordDefinitionField = value;
                this.RaisePropertyChanged("WordDefinition");
            }
        }
        
        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.Xml", "4.0.30319.431")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://services.aonaware.com/webservices/")]
    public partial class WordDefinition : object, System.ComponentModel.INotifyPropertyChanged {
        
        private string wordField;
        
        private Definition[] definitionsField;
        
        /// 
        [System.Xml.Serialization.XmlElementAttribute(Order=0)]
        public string Word {
            get {
                return this.wordField;
            }
            set {
                this.wordField = value;
                this.RaisePropertyChanged("Word");
            }
        }
        
        /// 
        [System.Xml.Serialization.XmlArrayAttribute(Order=1)]
        public Definition[] Definitions {
            get {
                return this.definitionsField;
            }
            set {
                this.definitionsField = value;
                this.RaisePropertyChanged("Definitions");
            }
        }
        
        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.ServiceModel", "4.0.0.0")]
    public interface DictServiceSoapChannel : Excercise7.DictionarySuggestService.DictServiceSoap, System.ServiceModel.IClientChannel {
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    public partial class ServerInfoCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        public ServerInfoCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        public string Result {
            get {
                base.RaiseExceptionIfNecessary();
                return ((string)(this.results[0]));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    public partial class DictionaryListCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        public DictionaryListCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        public Dictionary[] Result {
            get {
                base.RaiseExceptionIfNecessary();
                return ((Dictionary[])(this.results[0]));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    public partial class DictionaryListExtendedCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        public DictionaryListExtendedCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        public Dictionary[] Result {
            get {
                base.RaiseExceptionIfNecessary();
                return ((Dictionary[])(this.results[0]));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    public partial class DictionaryInfoCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        public DictionaryInfoCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        public string Result {
            get {
                base.RaiseExceptionIfNecessary();
                return ((string)(this.results[0]));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    public partial class DefineCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        public DefineCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        public Excercise7.DictionarySuggestService.WordDefinition Result {
            get {
                base.RaiseExceptionIfNecessary();
                return ((Excercise7.DictionarySuggestService.WordDefinition)(this.results[0]));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    public partial class DefineInDictCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        public DefineInDictCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        public Excercise7.DictionarySuggestService.WordDefinition Result {
            get {
                base.RaiseExceptionIfNecessary();
                return ((Excercise7.DictionarySuggestService.WordDefinition)(this.results[0]));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    public partial class StrategyListCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        public StrategyListCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        public Strategy[] Result {
            get {
                base.RaiseExceptionIfNecessary();
                return ((Strategy[])(this.results[0]));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    public partial class MatchCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        public MatchCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        public DictionaryWord[] Result {
            get {
                base.RaiseExceptionIfNecessary();
                return ((DictionaryWord[])(this.results[0]));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    public partial class MatchInDictCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        public MatchInDictCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        public DictionaryWord[] Result {
            get {
                base.RaiseExceptionIfNecessary();
                return ((DictionaryWord[])(this.results[0]));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    public partial class DictServiceSoapClient : System.ServiceModel.ClientBase, Excercise7.DictionarySuggestService.DictServiceSoap {
        
        private BeginOperationDelegate onBeginServerInfoDelegate;
        
        private EndOperationDelegate onEndServerInfoDelegate;
        
        private System.Threading.SendOrPostCallback onServerInfoCompletedDelegate;
        
        private BeginOperationDelegate onBeginDictionaryListDelegate;
        
        private EndOperationDelegate onEndDictionaryListDelegate;
        
        private System.Threading.SendOrPostCallback onDictionaryListCompletedDelegate;
        
        private BeginOperationDelegate onBeginDictionaryListExtendedDelegate;
        
        private EndOperationDelegate onEndDictionaryListExtendedDelegate;
        
        private System.Threading.SendOrPostCallback onDictionaryListExtendedCompletedDelegate;
        
        private BeginOperationDelegate onBeginDictionaryInfoDelegate;
        
        private EndOperationDelegate onEndDictionaryInfoDelegate;
        
        private System.Threading.SendOrPostCallback onDictionaryInfoCompletedDelegate;
        
        private BeginOperationDelegate onBeginDefineDelegate;
        
        private EndOperationDelegate onEndDefineDelegate;
        
        private System.Threading.SendOrPostCallback onDefineCompletedDelegate;
        
        private BeginOperationDelegate onBeginDefineInDictDelegate;
        
        private EndOperationDelegate onEndDefineInDictDelegate;
        
        private System.Threading.SendOrPostCallback onDefineInDictCompletedDelegate;
        
        private BeginOperationDelegate onBeginStrategyListDelegate;
        
        private EndOperationDelegate onEndStrategyListDelegate;
        
        private System.Threading.SendOrPostCallback onStrategyListCompletedDelegate;
        
        private BeginOperationDelegate onBeginMatchDelegate;
        
        private EndOperationDelegate onEndMatchDelegate;
        
        private System.Threading.SendOrPostCallback onMatchCompletedDelegate;
        
        private BeginOperationDelegate onBeginMatchInDictDelegate;
        
        private EndOperationDelegate onEndMatchInDictDelegate;
        
        private System.Threading.SendOrPostCallback onMatchInDictCompletedDelegate;
        
        public DictServiceSoapClient() {
        }
        
        public DictServiceSoapClient(string endpointConfigurationName) : 
                base(endpointConfigurationName) {
        }
        
        public DictServiceSoapClient(string endpointConfigurationName, string remoteAddress) : 
                base(endpointConfigurationName, remoteAddress) {
        }
        
        public DictServiceSoapClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) : 
                base(endpointConfigurationName, remoteAddress) {
        }
        
        public DictServiceSoapClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) : 
                base(binding, remoteAddress) {
        }
        
        public event System.EventHandler ServerInfoCompleted;
        
        public event System.EventHandler DictionaryListCompleted;
        
        public event System.EventHandler DictionaryListExtendedCompleted;
        
        public event System.EventHandler DictionaryInfoCompleted;
        
        public event System.EventHandler DefineCompleted;
        
        public event System.EventHandler DefineInDictCompleted;
        
        public event System.EventHandler StrategyListCompleted;
        
        public event System.EventHandler MatchCompleted;
        
        public event System.EventHandler MatchInDictCompleted;
        
        public string ServerInfo() {
            return base.Channel.ServerInfo();
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        public System.IAsyncResult BeginServerInfo(System.AsyncCallback callback, object asyncState) {
            return base.Channel.BeginServerInfo(callback, asyncState);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        public string EndServerInfo(System.IAsyncResult result) {
            return base.Channel.EndServerInfo(result);
        }
        
        private System.IAsyncResult OnBeginServerInfo(object[] inValues, System.AsyncCallback callback, object asyncState) {
            return this.BeginServerInfo(callback, asyncState);
        }
        
        private object[] OnEndServerInfo(System.IAsyncResult result) {
            string retVal = this.EndServerInfo(result);
            return new object[] {
                    retVal};
        }
        
        private void OnServerInfoCompleted(object state) {
            if ((this.ServerInfoCompleted != null)) {
                InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
                this.ServerInfoCompleted(this, new ServerInfoCompletedEventArgs(e.Results, e.Error, e.Cancelled, e.UserState));
            }
        }
        
        public void ServerInfoAsync() {
            this.ServerInfoAsync(null);
        }
        
        public void ServerInfoAsync(object userState) {
            if ((this.onBeginServerInfoDelegate == null)) {
                this.onBeginServerInfoDelegate = new BeginOperationDelegate(this.OnBeginServerInfo);
            }
            if ((this.onEndServerInfoDelegate == null)) {
                this.onEndServerInfoDelegate = new EndOperationDelegate(this.OnEndServerInfo);
            }
            if ((this.onServerInfoCompletedDelegate == null)) {
                this.onServerInfoCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnServerInfoCompleted);
            }
            base.InvokeAsync(this.onBeginServerInfoDelegate, null, this.onEndServerInfoDelegate, this.onServerInfoCompletedDelegate, userState);
        }
        
        public Dictionary[] DictionaryList() {
            return base.Channel.DictionaryList();
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        public System.IAsyncResult BeginDictionaryList(System.AsyncCallback callback, object asyncState) {
            return base.Channel.BeginDictionaryList(callback, asyncState);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        public Dictionary[] EndDictionaryList(System.IAsyncResult result) {
            return base.Channel.EndDictionaryList(result);
        }
        
        private System.IAsyncResult OnBeginDictionaryList(object[] inValues, System.AsyncCallback callback, object asyncState) {
            return this.BeginDictionaryList(callback, asyncState);
        }
        
        private object[] OnEndDictionaryList(System.IAsyncResult result) {
            Dictionary[] retVal = this.EndDictionaryList(result);
            return new object[] {
                    retVal};
        }
        
        private void OnDictionaryListCompleted(object state) {
            if ((this.DictionaryListCompleted != null)) {
                InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
                this.DictionaryListCompleted(this, new DictionaryListCompletedEventArgs(e.Results, e.Error, e.Cancelled, e.UserState));
            }
        }
        
        public void DictionaryListAsync() {
            this.DictionaryListAsync(null);
        }
        
        public void DictionaryListAsync(object userState) {
            if ((this.onBeginDictionaryListDelegate == null)) {
                this.onBeginDictionaryListDelegate = new BeginOperationDelegate(this.OnBeginDictionaryList);
            }
            if ((this.onEndDictionaryListDelegate == null)) {
                this.onEndDictionaryListDelegate = new EndOperationDelegate(this.OnEndDictionaryList);
            }
            if ((this.onDictionaryListCompletedDelegate == null)) {
                this.onDictionaryListCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnDictionaryListCompleted);
            }
            base.InvokeAsync(this.onBeginDictionaryListDelegate, null, this.onEndDictionaryListDelegate, this.onDictionaryListCompletedDelegate, userState);
        }
        
        public Dictionary[] DictionaryListExtended() {
            return base.Channel.DictionaryListExtended();
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        public System.IAsyncResult BeginDictionaryListExtended(System.AsyncCallback callback, object asyncState) {
            return base.Channel.BeginDictionaryListExtended(callback, asyncState);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        public Dictionary[] EndDictionaryListExtended(System.IAsyncResult result) {
            return base.Channel.EndDictionaryListExtended(result);
        }
        
        private System.IAsyncResult OnBeginDictionaryListExtended(object[] inValues, System.AsyncCallback callback, object asyncState) {
            return this.BeginDictionaryListExtended(callback, asyncState);
        }
        
        private object[] OnEndDictionaryListExtended(System.IAsyncResult result) {
            Dictionary[] retVal = this.EndDictionaryListExtended(result);
            return new object[] {
                    retVal};
        }
        
        private void OnDictionaryListExtendedCompleted(object state) {
            if ((this.DictionaryListExtendedCompleted != null)) {
                InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
                this.DictionaryListExtendedCompleted(this, new DictionaryListExtendedCompletedEventArgs(e.Results, e.Error, e.Cancelled, e.UserState));
            }
        }
        
        public void DictionaryListExtendedAsync() {
            this.DictionaryListExtendedAsync(null);
        }
        
        public void DictionaryListExtendedAsync(object userState) {
            if ((this.onBeginDictionaryListExtendedDelegate == null)) {
                this.onBeginDictionaryListExtendedDelegate = new BeginOperationDelegate(this.OnBeginDictionaryListExtended);
            }
            if ((this.onEndDictionaryListExtendedDelegate == null)) {
                this.onEndDictionaryListExtendedDelegate = new EndOperationDelegate(this.OnEndDictionaryListExtended);
            }
            if ((this.onDictionaryListExtendedCompletedDelegate == null)) {
                this.onDictionaryListExtendedCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnDictionaryListExtendedCompleted);
            }
            base.InvokeAsync(this.onBeginDictionaryListExtendedDelegate, null, this.onEndDictionaryListExtendedDelegate, this.onDictionaryListExtendedCompletedDelegate, userState);
        }
        
        public string DictionaryInfo(string dictId) {
            return base.Channel.DictionaryInfo(dictId);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        public System.IAsyncResult BeginDictionaryInfo(string dictId, System.AsyncCallback callback, object asyncState) {
            return base.Channel.BeginDictionaryInfo(dictId, callback, asyncState);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        public string EndDictionaryInfo(System.IAsyncResult result) {
            return base.Channel.EndDictionaryInfo(result);
        }
        
        private System.IAsyncResult OnBeginDictionaryInfo(object[] inValues, System.AsyncCallback callback, object asyncState) {
            string dictId = ((string)(inValues[0]));
            return this.BeginDictionaryInfo(dictId, callback, asyncState);
        }
        
        private object[] OnEndDictionaryInfo(System.IAsyncResult result) {
            string retVal = this.EndDictionaryInfo(result);
            return new object[] {
                    retVal};
        }
        
        private void OnDictionaryInfoCompleted(object state) {
            if ((this.DictionaryInfoCompleted != null)) {
                InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
                this.DictionaryInfoCompleted(this, new DictionaryInfoCompletedEventArgs(e.Results, e.Error, e.Cancelled, e.UserState));
            }
        }
        
        public void DictionaryInfoAsync(string dictId) {
            this.DictionaryInfoAsync(dictId, null);
        }
        
        public void DictionaryInfoAsync(string dictId, object userState) {
            if ((this.onBeginDictionaryInfoDelegate == null)) {
                this.onBeginDictionaryInfoDelegate = new BeginOperationDelegate(this.OnBeginDictionaryInfo);
            }
            if ((this.onEndDictionaryInfoDelegate == null)) {
                this.onEndDictionaryInfoDelegate = new EndOperationDelegate(this.OnEndDictionaryInfo);
            }
            if ((this.onDictionaryInfoCompletedDelegate == null)) {
                this.onDictionaryInfoCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnDictionaryInfoCompleted);
            }
            base.InvokeAsync(this.onBeginDictionaryInfoDelegate, new object[] {
                        dictId}, this.onEndDictionaryInfoDelegate, this.onDictionaryInfoCompletedDelegate, userState);
        }
        
        public Excercise7.DictionarySuggestService.WordDefinition Define(string word) {
            return base.Channel.Define(word);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        public System.IAsyncResult BeginDefine(string word, System.AsyncCallback callback, object asyncState) {
            return base.Channel.BeginDefine(word, callback, asyncState);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        public Excercise7.DictionarySuggestService.WordDefinition EndDefine(System.IAsyncResult result) {
            return base.Channel.EndDefine(result);
        }
        
        private System.IAsyncResult OnBeginDefine(object[] inValues, System.AsyncCallback callback, object asyncState) {
            string word = ((string)(inValues[0]));
            return this.BeginDefine(word, callback, asyncState);
        }
        
        private object[] OnEndDefine(System.IAsyncResult result) {
            Excercise7.DictionarySuggestService.WordDefinition retVal = this.EndDefine(result);
            return new object[] {
                    retVal};
        }
        
        private void OnDefineCompleted(object state) {
            if ((this.DefineCompleted != null)) {
                InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
                this.DefineCompleted(this, new DefineCompletedEventArgs(e.Results, e.Error, e.Cancelled, e.UserState));
            }
        }
        
        public void DefineAsync(string word) {
            this.DefineAsync(word, null);
        }
        
        public void DefineAsync(string word, object userState) {
            if ((this.onBeginDefineDelegate == null)) {
                this.onBeginDefineDelegate = new BeginOperationDelegate(this.OnBeginDefine);
            }
            if ((this.onEndDefineDelegate == null)) {
                this.onEndDefineDelegate = new EndOperationDelegate(this.OnEndDefine);
            }
            if ((this.onDefineCompletedDelegate == null)) {
                this.onDefineCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnDefineCompleted);
            }
            base.InvokeAsync(this.onBeginDefineDelegate, new object[] {
                        word}, this.onEndDefineDelegate, this.onDefineCompletedDelegate, userState);
        }
        
        public Excercise7.DictionarySuggestService.WordDefinition DefineInDict(string dictId, string word) {
            return base.Channel.DefineInDict(dictId, word);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        public System.IAsyncResult BeginDefineInDict(string dictId, string word, System.AsyncCallback callback, object asyncState) {
            return base.Channel.BeginDefineInDict(dictId, word, callback, asyncState);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        public Excercise7.DictionarySuggestService.WordDefinition EndDefineInDict(System.IAsyncResult result) {
            return base.Channel.EndDefineInDict(result);
        }
        
        private System.IAsyncResult OnBeginDefineInDict(object[] inValues, System.AsyncCallback callback, object asyncState) {
            string dictId = ((string)(inValues[0]));
            string word = ((string)(inValues[1]));
            return this.BeginDefineInDict(dictId, word, callback, asyncState);
        }
        
        private object[] OnEndDefineInDict(System.IAsyncResult result) {
            Excercise7.DictionarySuggestService.WordDefinition retVal = this.EndDefineInDict(result);
            return new object[] {
                    retVal};
        }
        
        private void OnDefineInDictCompleted(object state) {
            if ((this.DefineInDictCompleted != null)) {
                InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
                this.DefineInDictCompleted(this, new DefineInDictCompletedEventArgs(e.Results, e.Error, e.Cancelled, e.UserState));
            }
        }
        
        public void DefineInDictAsync(string dictId, string word) {
            this.DefineInDictAsync(dictId, word, null);
        }
        
        public void DefineInDictAsync(string dictId, string word, object userState) {
            if ((this.onBeginDefineInDictDelegate == null)) {
                this.onBeginDefineInDictDelegate = new BeginOperationDelegate(this.OnBeginDefineInDict);
            }
            if ((this.onEndDefineInDictDelegate == null)) {
                this.onEndDefineInDictDelegate = new EndOperationDelegate(this.OnEndDefineInDict);
            }
            if ((this.onDefineInDictCompletedDelegate == null)) {
                this.onDefineInDictCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnDefineInDictCompleted);
            }
            base.InvokeAsync(this.onBeginDefineInDictDelegate, new object[] {
                        dictId,
                        word}, this.onEndDefineInDictDelegate, this.onDefineInDictCompletedDelegate, userState);
        }
        
        public Strategy[] StrategyList() {
            return base.Channel.StrategyList();
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        public System.IAsyncResult BeginStrategyList(System.AsyncCallback callback, object asyncState) {
            return base.Channel.BeginStrategyList(callback, asyncState);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        public Strategy[] EndStrategyList(System.IAsyncResult result) {
            return base.Channel.EndStrategyList(result);
        }
        
        private System.IAsyncResult OnBeginStrategyList(object[] inValues, System.AsyncCallback callback, object asyncState) {
            return this.BeginStrategyList(callback, asyncState);
        }
        
        private object[] OnEndStrategyList(System.IAsyncResult result) {
            Strategy[] retVal = this.EndStrategyList(result);
            return new object[] {
                    retVal};
        }
        
        private void OnStrategyListCompleted(object state) {
            if ((this.StrategyListCompleted != null)) {
                InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
                this.StrategyListCompleted(this, new StrategyListCompletedEventArgs(e.Results, e.Error, e.Cancelled, e.UserState));
            }
        }
        
        public void StrategyListAsync() {
            this.StrategyListAsync(null);
        }
        
        public void StrategyListAsync(object userState) {
            if ((this.onBeginStrategyListDelegate == null)) {
                this.onBeginStrategyListDelegate = new BeginOperationDelegate(this.OnBeginStrategyList);
            }
            if ((this.onEndStrategyListDelegate == null)) {
                this.onEndStrategyListDelegate = new EndOperationDelegate(this.OnEndStrategyList);
            }
            if ((this.onStrategyListCompletedDelegate == null)) {
                this.onStrategyListCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnStrategyListCompleted);
            }
            base.InvokeAsync(this.onBeginStrategyListDelegate, null, this.onEndStrategyListDelegate, this.onStrategyListCompletedDelegate, userState);
        }
        
        public DictionaryWord[] Match(string word, string strategy) {
            return base.Channel.Match(word, strategy);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        public System.IAsyncResult BeginMatch(string word, string strategy, System.AsyncCallback callback, object asyncState) {
            return base.Channel.BeginMatch(word, strategy, callback, asyncState);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        public DictionaryWord[] EndMatch(System.IAsyncResult result) {
            return base.Channel.EndMatch(result);
        }
        
        private System.IAsyncResult OnBeginMatch(object[] inValues, System.AsyncCallback callback, object asyncState) {
            string word = ((string)(inValues[0]));
            string strategy = ((string)(inValues[1]));
            return this.BeginMatch(word, strategy, callback, asyncState);
        }
        
        private object[] OnEndMatch(System.IAsyncResult result) {
            DictionaryWord[] retVal = this.EndMatch(result);
            return new object[] {
                    retVal};
        }
        
        private void OnMatchCompleted(object state) {
            if ((this.MatchCompleted != null)) {
                InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
                this.MatchCompleted(this, new MatchCompletedEventArgs(e.Results, e.Error, e.Cancelled, e.UserState));
            }
        }
        
        public void MatchAsync(string word, string strategy) {
            this.MatchAsync(word, strategy, null);
        }
        
        public void MatchAsync(string word, string strategy, object userState) {
            if ((this.onBeginMatchDelegate == null)) {
                this.onBeginMatchDelegate = new BeginOperationDelegate(this.OnBeginMatch);
            }
            if ((this.onEndMatchDelegate == null)) {
                this.onEndMatchDelegate = new EndOperationDelegate(this.OnEndMatch);
            }
            if ((this.onMatchCompletedDelegate == null)) {
                this.onMatchCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnMatchCompleted);
            }
            base.InvokeAsync(this.onBeginMatchDelegate, new object[] {
                        word,
                        strategy}, this.onEndMatchDelegate, this.onMatchCompletedDelegate, userState);
        }
        
        public DictionaryWord[] MatchInDict(string dictId, string word, string strategy) {
            return base.Channel.MatchInDict(dictId, word, strategy);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        public System.IAsyncResult BeginMatchInDict(string dictId, string word, string strategy, System.AsyncCallback callback, object asyncState) {
            return base.Channel.BeginMatchInDict(dictId, word, strategy, callback, asyncState);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        public DictionaryWord[] EndMatchInDict(System.IAsyncResult result) {
            return base.Channel.EndMatchInDict(result);
        }
        
        private System.IAsyncResult OnBeginMatchInDict(object[] inValues, System.AsyncCallback callback, object asyncState) {
            string dictId = ((string)(inValues[0]));
            string word = ((string)(inValues[1]));
            string strategy = ((string)(inValues[2]));
            return this.BeginMatchInDict(dictId, word, strategy, callback, asyncState);
        }
        
        private object[] OnEndMatchInDict(System.IAsyncResult result) {
            DictionaryWord[] retVal = this.EndMatchInDict(result);
            return new object[] {
                    retVal};
        }
        
        private void OnMatchInDictCompleted(object state) {
            if ((this.MatchInDictCompleted != null)) {
                InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
                this.MatchInDictCompleted(this, new MatchInDictCompletedEventArgs(e.Results, e.Error, e.Cancelled, e.UserState));
            }
        }
        
        public void MatchInDictAsync(string dictId, string word, string strategy) {
            this.MatchInDictAsync(dictId, word, strategy, null);
        }
        
        public void MatchInDictAsync(string dictId, string word, string strategy, object userState) {
            if ((this.onBeginMatchInDictDelegate == null)) {
                this.onBeginMatchInDictDelegate = new BeginOperationDelegate(this.OnBeginMatchInDict);
            }
            if ((this.onEndMatchInDictDelegate == null)) {
                this.onEndMatchInDictDelegate = new EndOperationDelegate(this.OnEndMatchInDict);
            }
            if ((this.onMatchInDictCompletedDelegate == null)) {
                this.onMatchInDictCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnMatchInDictCompleted);
            }
            base.InvokeAsync(this.onBeginMatchInDictDelegate, new object[] {
                        dictId,
                        word,
                        strategy}, this.onEndMatchInDictDelegate, this.onMatchInDictCompletedDelegate, userState);
        }
    }
}