다음을 통해 공유


방법: 개체 생성 구성

다음 절차와 예제에서는 개체 생성을 구성하는 방법과 TestObjectConstruct 클래스의 기본 초기화 문자열을 "Initial Catalog=Northwind;Data Source=.\\SQLServerInstance;Trusted_Connection=yes" 문자열로 설정하는 방법에 대해 설명합니다. 이 문자열은 SQL Server 데이터베이스에 연결하는 데 사용합니다. 개체 생성 항목에서는 ServicedComponent 클래스의 COM+ 개체 생성에 대해 자세히 설명합니다.

개체 생성을 구성하고 클래스의 기본 초기화 문자열을 설정하려면

  1. System.EnterpriseServices.ServicedComponent 클래스에서 직접 또는 간접적으로 파생되는 클래스를 정의합니다. 예를 들어, 다음 코드에서는 System.EnterpriseServices.ServicedComponent 클래스에서 직접 파생되는 TestObjectConstruct 클래스를 보여 줍니다.

    Imports System.EnterpriseServices
    Imports System
    Imports System.Data
    Imports System.Data.SqlClient
    …
    Public Class TestObjectConstruct 
          Inherits ServicedComponent
          …
    End Class
    
    using System;
    using System.EnterpriseServices;
    using System.Data;
    using System.Data.SqlClient;
    
    …
    public class TestObjectConstruct : ServicedComponent
    {
       …
    }
    
  2. 클래스에 ConstructionEnabledAttribute 특성을 적용하고 특성의 Default 속성을 설정합니다. 예를 들어, 다음 코드에서는 ConstructionEnabledAttribute 특성을 TestObjectConstruct 클래스에 적용하고 Default 속성을 SQL Server 연결 문자열로 설정합니다.

    <ConstructionEnabled([Default] := "Initial Catalog=Northwind;Data Source=.\\SQLServerInstance;Trusted_Connection=yes")> _
    Public Class TestObjectConstruct 
        …
    End Class
    
    [ConstructionEnabled(Default="Initial Catalog=Northwind;Data Source=.\\SQLServerInstance;Trusted_Connection=yes")]
    public class TestObjectConstruct : ServicedComponent
    {
        …
    }
    
  3. Construct 메서드를 재정의합니다.

    <ConstructionEnabled([Default] := "Initial Catalog=Northwind;Data Source=.\\SQLServerInstance;Trusted_Connection=yes")> _
    Public Class TestObjectConstruct 
          Inherits ServicedComponent
          Private m_connectStr As String
          Private conn as SqlConnection
          Protected Overrides Sub Construct(constructString As String)
          ' Called after constructor.
            m_connectStr = constructString
          End Sub 
          Public Sub ConnectToDatabase()
              conn = New SqlConnection(m_connectStr)
          End Sub 
    
    End Class 
    
    [C#]
    [ConstructionEnabled(Default="Initial Catalog=Northwind;Data Source=.\\SQLServerInstance;Trusted_Connection=yes")]
    public class TestObjectConstruct : ServicedComponent
    {
          private string connectStr;
          SqlConnection conn;
          public TestObjectConstruct()
          {
            …
          }
          protected override void Construct(string constructString)
          {
             // Called after constructor.
             connectStr = constructString;
         }
         public void ConnectToDatabase()
         {
              conn = new SqlConnection(connectStr);
              conn.Open();
         }
    }
    
  4. 클라이언트 응용 프로그램에서 생성 문자열을 지정하지 않고 기본값을 사용하여 구성 요소 클래스의 인스턴스를 생성합니다. 예를 들어, 다음 코드에서는 TestObjectConstruct 클래스의 인스턴스를 만들고 생성 문자열의 기본값을 "Initial Catalog=Northwind;Data Source=.\\SQLServerInstance;Trusted_Connection=yes"로 설정합니다.

    Public Class App
          Overloads Public Shared Sub Main()
                Dim order As New TestObjectConstruct()
                order.ConnectToDatabase()
          End Sub
    End Class
    
    public class App
    {
          public static void Main()
          {
                TestObjectConstruct order = new TestObjectConstruct();
                order. ConnectToDatabase();
          }
    }
    

구성 요소 서비스 응용 프로그램을 설치한 경우에는 구성 요소 서비스 관리 도구를 사용하여 생성 문자열을 지정할 수 있습니다. 구성 요소의 개체 생성 문자열을 입력하려면 다음 단계를 수행합니다.

  1. 구성 요소 서비스 관리 도구를 엽니다.

  2. 구성 요소 서비스 관리 도구에서 구성할 구성 요소를 마우스 오른쪽 단추로 클릭한 다음 속성을 클릭합니다.

  3. ConstructionEnabled 특성이 True로 설정되어 있지 않으면 속성 대화 상자의 활성화 탭에서 개체 생성 사용 확인란을 선택하여 개체 생성 문자열을 사용할 수 있게 설정합니다.

  4. ConstructionEnabled 특성에 지정된 기본 생성 문자열을 변경하려면 생성자 문자열 상자에 생성 문자열을 입력합니다.

예제

Imports System.EnterpriseServices
Imports System
Imports System.Data
Imports System.Data.SqlClient
<assembly: ApplicationName("OCDemo")>

Namespace OCDemo 
    <ConstructionEnabled([Default] := "Initial Catalog=Northwind;
       Data Source=.\\SQLServerInstance;Trusted_Connection=yes")> _
    Public Class TestObjectConstruct 
         Inherits ServicedComponent
      Private m_connectStr As String
      Private conn as SqlConnection
      Protected Overrides Sub Construct(constructString As String)
      ' Called after constructor.
        m_connectStr = constructString
      End Sub 
      Public Sub ConnectToDatabase()
          conn = New SqlConnection(m_connectStr)
      End Sub 
    End Class 
End Namespace 
using System;
using System.EnterpriseServices;
using System.Data;
using System.Data.SqlClient;
[assembly : ApplicationName("OCDemo")]

namespace OCDemo
{
    [ConstructionEnabled(Default="Initial Catalog=Northwind;
       Data Source=.\\SQLServerInstance;Trusted_Connection=yes")]
    public class TestObjectConstruct : ServicedComponent
    {
      private string connectStr;
      SqlConnection conn;
      public TestObjectConstruct()
      {
        …
      }
      protected override void Construct(string constructString)
      {
         // Called after constructor.
         connectStr = constructString;
     }
     public void ConnectToDatabase()
     {
          conn = new SqlConnection(connectStr);
          conn.Open();
     }
    }
}

참고 항목

참조

ConstructionEnabledAttribute
System.EnterpriseServices

개념

개체 생성
사용 가능한 COM+ 서비스 요약

Footer image

Copyright © 2007 by Microsoft Corporation. All rights reserved.