5.5. Komponenty v prostředí .NET

Vytvoření nové komponenty v prostředí .NET je ve srovnání s uvedeným přístupem mnohem jednodušší. Jako příklad si uvedeme opět realizaci komponenty pro generování náhodných čísel, tentokrát však v jazyce C#.

src/RandomCs/IRandom.cs
Příklad 5.5. Rozhraní komponenty IRandom.cs
   namespace RandomCs
   {
	   public interface IRandom
	   {
		   void Start(int seed);
		   int Next();
	   }
   }

V prostředí .NET jsou COM komponenty odvozeny od třídy System.EnterpriseServices.ServicedComponent a implementují potřebná aplikační rozhraní. Ekvivalent obdobný IUnknown zde nenajdeme, neboť přístup k implementovaným rozhraním má každý objekt spravovaný prostředím .NET Framework a správa paměti je již rovněž zajištěna základním systémem.

src/RandomCs/RandomCs.cs
Příklad 5.6. Implementace komponenty RandomCs.cs
using System;
using System.EnterpriseServices;

namespace RandomCs
{
	public class Random: ServicedComponent, IRandom
	{
		private int m_seed = 0;

		public void Start(int seed)
		{
			m_seed = seed;
		}
      
		public int Next()
		{
			m_seed = m_seed * 3925 + 28347; 
			return m_seed & 0xffff; 
		}
	}
}