Kalıcı özel nesneler

Yalnızca basit veri türleri gibi özellikleri kullanmak sürece oluşturduğunuz özel nesneleri için özel kalıcılık uygulamak gerekmez integerve string. Kalıcılığı varsayılan uygulanması için tüm özellikleri değerleri ile birlikte, nesne meta verileri kaydeder.

Ancak, karmaşık veri türlerini kullanan özellikler nesneniz varsa, ya da eğer olarak yüklenmiş ve kaydedilmiş özel işleme özelliği değerleri üzerinde gerçekleştirmek istediğiniz uygulayabileceğiniz IDTSComponentPersistarabirimi ve onun LoadFromXMLve SaveToXMLyöntemleri. Bu yöntemleri gelen yük (veya kaydetmek) paketi özellikleri nesne ve geçerli değerlerini içeren bir xml parçası xml tanımı. Bu xml parçası biçiminde tanımlanır; yalnızca doğru biçimlendirilmiş olmalıdır xml.

Önemli notÖnemli

Özel kalıcılık uygulamak nesnesinin devralınan özellikler ve eklediğiniz özel özellikler de dahil olmak üzere, tüm özellikleri kalıcı olmalıdır.

Örnek

Her ne kadar Sql Server Custom Connection Manager Sampleözel kalıcılık türünde üç özellikleri gerektirmeyen string, aşağıdaki kodu Bağlantı Yöneticisi ve özelliklerini inat için gerekli olacağını özel kod gösterilmektedir. Bu kodu içeren sınıf uygulaması gerekir IDTSComponentPersistarabirimi.

  Private Const PERSIST_ELEMENT As String = "SqlConnectionManager"
  Private Const PERSIST_SERVER As String = "Server"
  Private Const PERSIST_DATABASE As String = "Database"
  Private Const PERSIST_CONNECTIONSTRING As String = "ConnectionString"

  Public Sub LoadFromXML(ByVal node As System.Xml.XmlElement, _
    ByVal infoEvents As Microsoft.SqlServer.Dts.Runtime.IDTSInfoEvents) _
    Implements Microsoft.SqlServer.Dts.Runtime.IDTSComponentPersist.LoadFromXML

    Dim propertyNode As XmlNode

    ' Make sure that the correct node is being loaded.
    If node.Name <> PERSIST_ELEMENT Then
      Throw New Exception("Persisted element is not of type " & PERSIST_ELEMENT)
    End If

    ' Load the three properties of the object from XML into variables.
    For Each propertyNode In node.ChildNodes
      Select Case propertyNode.Name
        Case PERSIST_SERVER
          _serverName = propertyNode.InnerText
        Case PERSIST_DATABASE
          _databaseName = propertyNode.InnerText
        Case PERSIST_CONNECTIONSTRING
          _connectionString = propertyNode.InnerText
      End Select
    Next

  End Sub

  Public Sub SaveToXML(ByVal doc As System.Xml.XmlDocument, _
    ByVal infoEvents As Microsoft.SqlServer.Dts.Runtime.IDTSInfoEvents) _
    Implements Microsoft.SqlServer.Dts.Runtime.IDTSComponentPersist.SaveToXML

    Dim elementRoot As XmlElement
    Dim propertyNode As XmlNode

    ' Create a new node to persist the object and its properties.
    elementRoot = doc.CreateElement(String.Empty, PERSIST_ELEMENT, String.Empty)

    ' Save the three properties of the object from variables into XML.
    propertyNode = doc.CreateNode(XmlNodeType.Element, PERSIST_SERVER, String.Empty)
    propertyNode.InnerText = _serverName
    elementRoot.AppendChild(propertyNode)

    propertyNode = doc.CreateNode(XmlNodeType.Element, PERSIST_DATABASE, String.Empty)
    propertyNode.InnerText = _databaseName
    elementRoot.AppendChild(propertyNode)

    propertyNode = doc.CreateNode(XmlNodeType.Element, PERSIST_CONNECTIONSTRING, String.Empty)
    propertyNode.InnerText = _connectionString
    elementRoot.AppendChild(propertyNode)

    doc.AppendChild(elementRoot)

  End Sub
  Private Const PERSIST_ELEMENT As String = "SqlConnectionManager"
  Private Const PERSIST_SERVER As String = "Server"
  Private Const PERSIST_DATABASE As String = "Database"
  Private Const PERSIST_CONNECTIONSTRING As String = "ConnectionString"

  Public Sub LoadFromXML(ByVal node As System.Xml.XmlElement, _
    ByVal infoEvents As Microsoft.SqlServer.Dts.Runtime.IDTSInfoEvents) _
    Implements Microsoft.SqlServer.Dts.Runtime.IDTSComponentPersist.LoadFromXML

    Dim propertyNode As XmlNode

    ' Make sure that the correct node is being loaded.
    If node.Name <> PERSIST_ELEMENT Then
      Throw New Exception("Persisted element is not of type " & PERSIST_ELEMENT)
    End If

    ' Load the three properties of the object from XML into variables.
    For Each propertyNode In node.ChildNodes
      Select Case propertyNode.Name
        Case PERSIST_SERVER
          _serverName = propertyNode.InnerText
        Case PERSIST_DATABASE
          _databaseName = propertyNode.InnerText
        Case PERSIST_CONNECTIONSTRING
          _connectionString = propertyNode.InnerText
      End Select
    Next

  End Sub

  Public Sub SaveToXML(ByVal doc As System.Xml.XmlDocument, _
    ByVal infoEvents As Microsoft.SqlServer.Dts.Runtime.IDTSInfoEvents) _
    Implements Microsoft.SqlServer.Dts.Runtime.IDTSComponentPersist.SaveToXML

    Dim elementRoot As XmlElement
    Dim propertyNode As XmlNode

    ' Create a new node to persist the object and its properties.
    elementRoot = doc.CreateElement(String.Empty, PERSIST_ELEMENT, String.Empty)

    ' Save the three properties of the object from variables into XML.
    propertyNode = doc.CreateNode(XmlNodeType.Element, PERSIST_SERVER, String.Empty)
    propertyNode.InnerText = _serverName
    elementRoot.AppendChild(propertyNode)

    propertyNode = doc.CreateNode(XmlNodeType.Element, PERSIST_DATABASE, String.Empty)
    propertyNode.InnerText = _databaseName
    elementRoot.AppendChild(propertyNode)

    propertyNode = doc.CreateNode(XmlNodeType.Element, PERSIST_CONNECTIONSTRING, String.Empty)
    propertyNode.InnerText = _connectionString
    elementRoot.AppendChild(propertyNode)

    doc.AppendChild(elementRoot)

  End Sub
    private const string PERSIST_ELEMENT = "SqlConnectionManager";
    private const string PERSIST_SERVER = "Server";
    private const string PERSIST_DATABASE = "Database";
    private const string PERSIST_CONNECTIONSTRING = "ConnectionString";

    public void LoadFromXML(System.Xml.XmlElement node,
      Microsoft.SqlServer.Dts.Runtime.IDTSInfoEvents infoEvents)
    {

      // Make sure that the correct node is being loaded.
      if (node.Name != PERSIST_ELEMENT)
      {
        throw new Exception("Persisted element is not of type " + PERSIST_ELEMENT);
      }

      // Save the three properties of the object from variables into XML.
      foreach (XmlNode propertyNode in node.ChildNodes)
      {
        switch (propertyNode.Name)
        {
          case PERSIST_SERVER:
            _serverName = propertyNode.InnerText;
            break;
          case PERSIST_DATABASE:
            _databaseName = propertyNode.InnerText;
            break;
          case PERSIST_CONNECTIONSTRING:
            _connectionString = propertyNode.InnerText;
            break;
        }
      }

    }

    public void SaveToXML(System.Xml.XmlDocument doc,
      Microsoft.SqlServer.Dts.Runtime.IDTSInfoEvents infoEvents)
    {

      XmlElement elementRoot;
      XmlNode propertyNode;

      // Create a new node to persist the object and its properties.
      elementRoot = doc.CreateElement(String.Empty, PERSIST_ELEMENT, String.Empty);

      // Save the three properties of the object from variables into XML.
      propertyNode = doc.CreateNode(XmlNodeType.Element, PERSIST_SERVER, String.Empty);
      propertyNode.InnerText = _serverName;
      elementRoot.AppendChild(propertyNode);

      propertyNode = doc.CreateNode(XmlNodeType.Element, PERSIST_DATABASE, String.Empty);
      propertyNode.InnerText = _databaseName;
      elementRoot.AppendChild(propertyNode);

      propertyNode = doc.CreateNode(XmlNodeType.Element, PERSIST_CONNECTIONSTRING, String.Empty);
      propertyNode.InnerText = _connectionString;
      elementRoot.AppendChild(propertyNode);

      doc.AppendChild(elementRoot);

    }
    private const string PERSIST_ELEMENT = "SqlConnectionManager";
    private const string PERSIST_SERVER = "Server";
    private const string PERSIST_DATABASE = "Database";
    private const string PERSIST_CONNECTIONSTRING = "ConnectionString";

    public void LoadFromXML(System.Xml.XmlElement node,
      Microsoft.SqlServer.Dts.Runtime.IDTSInfoEvents infoEvents)
    {

      // Make sure that the correct node is being loaded.
      if (node.Name != PERSIST_ELEMENT)
      {
        throw new Exception("Persisted element is not of type " + PERSIST_ELEMENT);
      }

      // Save the three properties of the object from variables into XML.
      foreach (XmlNode propertyNode in node.ChildNodes)
      {
        switch (propertyNode.Name)
        {
          case PERSIST_SERVER:
            _serverName = propertyNode.InnerText;
            break;
          case PERSIST_DATABASE:
            _databaseName = propertyNode.InnerText;
            break;
          case PERSIST_CONNECTIONSTRING:
            _connectionString = propertyNode.InnerText;
            break;
        }
      }

    }

    public void SaveToXML(System.Xml.XmlDocument doc,
      Microsoft.SqlServer.Dts.Runtime.IDTSInfoEvents infoEvents)
    {

      XmlElement elementRoot;
      XmlNode propertyNode;

      // Create a new node to persist the object and its properties.
      elementRoot = doc.CreateElement(String.Empty, PERSIST_ELEMENT, String.Empty);

      // Save the three properties of the object from variables into XML.
      propertyNode = doc.CreateNode(XmlNodeType.Element, PERSIST_SERVER, String.Empty);
      propertyNode.InnerText = _serverName;
      elementRoot.AppendChild(propertyNode);

      propertyNode = doc.CreateNode(XmlNodeType.Element, PERSIST_DATABASE, String.Empty);
      propertyNode.InnerText = _databaseName;
      elementRoot.AppendChild(propertyNode);

      propertyNode = doc.CreateNode(XmlNodeType.Element, PERSIST_CONNECTIONSTRING, String.Empty);
      propertyNode.InnerText = _connectionString;
      elementRoot.AppendChild(propertyNode);

      doc.AppendChild(elementRoot);

    }
Integration Services simgesi (küçük) Integration Services ile güncel kalın

En son karşıdan yüklemeler, makaleler, örnekler ve Microsoft video yanı sıra topluluk seçili çözümleri için ziyaret Integration ServicesMSDN sayfası:


Bu güncelleştirmelerle ilgili otomatik bildirim almak için, sayfadaki RSS akışlarına abone olun.

Ayrıca bkz.

Görevler

Oluşturma, dağıtma ve özel nesneler hata ayıklama

Kavramlar

Tümleştirme Hizmetleri özel nesne geliştirme