|
|
public string UpperCase(string s) { string s1 = s.ToUpper(); return s1; }
[assembly: ApplicationAccessControl(true)] [assembly: ApplicationName("MySuperApplication")] [assembly: ApplicationID("392587A7-5AEC-42e8-AF01-F6BCACA3ED1E")]
D:\PW\exercises\complus\MySuperComponent\bin\Debug>regsvcs.exe /fc MySuperComponent.dll Microsoft (R) .NET Framework Services Installation Utility Version 2.0.50727.42 Copyright (c) Microsoft Corporation. All rights reserved. Installed Assembly: Assembly: D:\PW\exercises\complus\MySuperComponent\bin\Debug\MySuperComponent.dll Application: MySuperApplication TypeLib: D:\PW\exercises\complus\MySuperComponent\bin\Debug\MySuperComponent.tlb
public interface IMySuperInterface { string UpperCase(string s); } [Description("This is my super class")] public class MySuperClass : ServicedComponent, IMySuperInterface { [Description("Very useful method")] public string UpperCase(string s) { string s1 = s.ToUpper(); return s1; } }
MySuperComponent.MySuperClass c = new MySuperComponent.MySuperClass(); string s = Console.ReadLine(); Console.WriteLine(c.UpperCase(s));
[assembly: ApplicationAccessControl(true)] [assembly: ApplicationName("MySuperApplication")] [assembly: ApplicationID("392587A7-5AEC-42e8-AF01-F6BCACA3ED1E")]
using System.EnterpriseServices; using System.Runtime.InteropServices; namespace MySuperEvent { [Guid("BD40FDD7-42A3-44A4-8A17-8748123E3E5D")] public interface IMyEvent { void TheEvent(string s); } [EventClass] [Guid("203AF033-C4ED-403D-8E6B-12C7F2310916")] public class MyEventClass : ServicedComponent, IMyEvent { public static string FiringInterfaceID = "{BD40FDD7-42A3-44A4-8A17-8748123E3E5D}"; public static string EventClassCLSID = "{203AF033-C4ED-403D-8E6B-12C7F2310916}"; public void TheEvent(string s) { } } }
MySuperComponent.MySuperClass component = new MySuperComponent.MySuperClass(); MySuperEvent.IMyEvent ev = new MySuperEvent.MyEventClass() as MySuperEvent.IMyEvent; string s; do { s = Console.ReadLine(); ev.TheEvent(s); Console.WriteLine(component.UpperCase(s)); } while (s != "END");
public partial class Form1 : Form, MySuperEvent.IMyEvent
private Guid subscriptionID; private void subscribeButton_Click(object sender, EventArgs e) { subscriptionID = Guid.NewGuid(); MySuperEvent.IMyEvent subscriberInterface = this as MySuperEvent.IMyEvent; COMAdmin.ICOMAdminCatalog pICat = new COMAdmin.COMAdminCatalogClass() as COMAdmin.ICOMAdminCatalog; COMAdminWrapper.Subscriptions.AddTransientSubscription( pICat, //ICOMAdminCatalog subscriptionID.ToString(), // Subscription name MySuperEvent.MyEventClass.EventClassCLSID, // EventClass to subscribe to null, // PublisherID MySuperEvent.MyEventClass.FiringInterfaceID,// FiringInterfaceID subscriberInterface, // the transient interface pointer on this form null, // methodName null, // FilterCriteria null, // Publisher property name null); // publisher property value } private void unsubscribeButton_Click(object sender, EventArgs e) { COMAdmin.ICOMAdminCatalog pICat = new COMAdmin.COMAdminCatalogClass() as COMAdmin.ICOMAdminCatalog; COMAdminWrapper.Subscriptions.RemoveTransientSubscription(pICat, subscriptionID.ToString()); } public void TheEvent(string s) { MessageBox.Show("TheEvent with: " + s); }