Click here to Skip to main content
15,886,786 members
Articles / Desktop Programming / Windows Forms

Integrating WCF Services

Rate me:
Please Sign up or sign in to vote.
4.84/5 (12 votes)
24 Apr 2008CPOL3 min read 44.9K   483   46  
This article describes how WCF services can be loaded on-the-fly (without prior knowledge of the services’ contracts), setting its parameters and sequencing their invocation.
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using Microsoft.Practices.CompositeUI;
using Microsoft.Practices.CompositeUI.WinForms;
using Integrator.UI.Common;

namespace Integrator.UI.LoadedServices
{
    public class LoadedServicesWorkItem : WorkItem
    {
        private LoadedServicesController controller = null;
        private LoadedServicesView view = null;
        private static bool isWorkItemInitialized = false;

        protected override void OnRunStarted()
        {
            base.OnRunStarted();

            this.view = new LoadedServicesView();
            this.controller = new LoadedServicesController(this.view);

            Items.Add(this.controller);
            Items.Add(this.view);
            DeckWorkspace workSpace = (DeckWorkspace)Workspaces[WorkSpaceConstants.DECKWORKSPACETREE];
            workSpace.Show(this.view);

            InitialiseWorkItem();

            Activate();
        }

        protected override void Dispose(bool disposing)
        {
            base.Dispose(disposing);
        }

        private void InitialiseWorkItem()
        {
            if (isWorkItemInitialized == false)
            {
                this.AddMenuItems();
                //this.AddToolbarItems();
                isWorkItemInitialized = true;
            }
        }

        private void AddMenuItems()
        {
            AddMenuButton(CommandConstants.LOAD_SERVICE, "&Load Service", string.Empty, UIExtensionConstants.MENUFILEDROPDOWN, Keys.None);
        }

        private void AddMenuButton(string commandName, string itemName, string imageName, string uiSiteName, Keys shortCutKeys)
        {
            ToolStripMenuItem menuItem = new ToolStripMenuItem(itemName);
            menuItem.ShortcutKeys = shortCutKeys;
            //if (imageName != string.Empty)
            //{
            //    menuItem.Image = this.iconList.ImageList.Images[imageName];
            //}
            RootWorkItem.UIExtensionSites[uiSiteName].Add(menuItem);
            Commands[commandName].AddInvoker(menuItem, "Click");
        }
    }
}

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Software Developer (Senior)
Singapore Singapore
Yes, I design. Then, I code. Next, I refactor.

Comments and Discussions