Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
A serviced component is a class that is authored in a CLS-compliant language and that derives directly or indirectly from the System.EnterpriseServices.ServicedComponent class. Classes configured in this way can be hosted in a COM+ application and can use COM+ services by way of the EnterpriseServices namespace. For a list of supported services, see Summary of Available COM+ Services.
COM+ services, such as automatic transactions or Queued Components, can be configured declaratively. You apply service-related attributes at design time and create instances of classes that use those services. You configure some services by calling methods on service-related classes or interfaces. Some services can flow from one object to another. For example, an object configured to require a transaction can extend that transaction to a second object if the second object also supports or requires transactions.
The COM+ catalog holds the configuration information that you apply to a class implementation. At run time, based on the attributes you apply to your code, COM+ creates a context service layer. The following illustration shows an automatic transaction that flows between two managed objects hosted by COM+.
COM+ application hosting serviced components
.gif)
Services can also flow between COM+ and .NET Framework objects. Each environment controls the implementation and execution of its native code; COM+ always provides the object context.
To create a serviced component
Define a class that derives directly or indirectly from the ServicedComponent class. For example, the following code ensures that the
Accountclass is hosted by a COM+ application.Imports System.EnterpriseServices Public Class Account Inherits ServicedComponent Shared Sub Main() End Sub End Class [C#] using System.EnterpriseServices; public class Account : ServicedComponent { static void Main() {} }The following code applies service attributes to the assembly, class, or method.
Imports System.EnterpriseServices <Transaction(TransactionOption.Required)> Public Class Account Inherits ServicedComponent <AutoComplete()> Shared Sub Main() End Sub End Class [C#] using System.EnterpriseServices; [Transaction(TransactionOption.Required)] public class Account : ServicedComponent { [AutoComplete] static void Main() {} }Note In .NET Framework version 1.1, the COM+ security configuration is enabled by default if the ApplicationAccessControlAttribute attribute is not present in the assembly. This is a change in behavior from .NET Framework version 1.0.
You can compile the example as follows:
Makefile.bat
vbc /t:exe /r:System.EnterpriseServices.dll Demo.vb [C#] csc /t:exe /r:System.EnterpriseServices.dll Demo.csDeploy the serviced component application by registering its assembly dynamically or manually. For more information, see Dynamic registration and Manual registration.
After a serviced component is registered, clients can create instances of the component the way they create instances of any other component. For a complete example, see Serviced Component Example.
Note On Windows 2000 platforms, COM+ always loads the most recent version of the common language runtime for the component you're creating. This means that on a computer with both .NET Framework version 1.0 and .NET Framework version 1.1 installed, .NET Framework version 1.1 is always loaded. As a workaround, you can create a COM+ dllhost.exe.configuration file that enables you to "lock" all applications to a specific version of .NET Framework. On Windows XP and Windows Server 2003 platforms, the Application Root Directory setting can be used to point COM+ to an appropriate directory for its configuration file.
See Also
Writing Serviced Components | Applying Attributes to Configure Services | Registering Serviced Components | Serviced Component Example | Summary of Available COM+ Services | System.EnterpriseServices.ServicedComponent