ObjectDataSourceDisposingEventHandler デリゲートとは? わかりやすく解説

Weblio 辞書 > コンピュータ > .NET Framework クラス ライブラリ リファレンス > ObjectDataSourceDisposingEventHandler デリゲートの意味・解説 

ObjectDataSourceDisposingEventHandler デリゲート

メモ : このデリゲートは、.NET Framework version 2.0新しく追加されたものです。

ObjectDataSource コントロールの ObjectDisposing イベント処理するメソッド表します

名前空間: System.Web.UI.WebControls
アセンブリ: System.Web (system.web.dll 内)
構文構文

Public Delegate Sub ObjectDataSourceDisposingEventHandler
 ( _
    sender As Object, _
    e As ObjectDataSourceDisposingEventArgs _
)
Dim instance As New ObjectDataSourceDisposingEventHandler(AddressOf
 HandlerMethod)
public delegate void ObjectDataSourceDisposingEventHandler
 (
    Object sender,
    ObjectDataSourceDisposingEventArgs e
)
public delegate void ObjectDataSourceDisposingEventHandler
 (
    Object^ sender, 
    ObjectDataSourceDisposingEventArgs^ e
)
/** @delegate */
public delegate void ObjectDataSourceDisposingEventHandler
 (
    Object sender, 
    ObjectDataSourceDisposingEventArgs e
)
JScript では、デリゲート使用できますが、新規に宣言することはできません。

パラメータ

sender

イベントソースである ObjectDataSource。

e

イベント データ格納している ObjectDataSourceDisposingEventArgs。

解説解説
使用例使用例

このセクションには、2 つコード例含まれています。ビジネス オブジェクトおよび GridView コントロールで、ObjectDataSource コントロール使用して情報表示する方法最初コード例示します最初コード例使用した中間層ビジネス オブジェクトの例を 2 番目のコード例示します

ビジネス オブジェクトおよび GridView コントロールで、ObjectDataSource コントロール使用して情報表示する方法次のコード例示しますWeb ページ実行されるデータ操作に、作成時の負荷大きい (作成時間がかかるリソース消費激しいなど) ビジネス オブジェクト使用している可能性あります負荷の高いオブジェクト操作する場合は、データ操作するたびにデータ作成した破棄したりせずに、インスタンス作成して後続の処理で再利用できるようにキャッシュ格納しておくことをお勧めます。この例では、このパターンデモンストレーションます。ObjectCreating イベント処理することで、キャッシュオブジェクト存在するかどうかチェックしてから、存在しない場合にのみ、インスタンス作成できます次に、ObjectDisposing イベント処理しビジネス オブジェクト破棄せずに、キャッシュ保存して後で使用できるようにします。この例では、ObjectDataSourceインスタンスDispose呼び出さないように、ObjectDataSourceDisposingEventArgs クラスの CancelEventArgs.Cancel プロパティtrue設定されています。

<%@ Import namespace="Samples.AspNet.VB"
 %>
<%@ Page language="vb" %>
<Script runat="server">

' Instead of creating and destroying the business object each time,
 the 
' business object is cached in the ASP.NET Cache.
Sub GetEmployeeLogic(sender As Object,
 e As ObjectDataSourceEventArgs)

    ' First check to see if an instance of this object already exists
 in the Cache.
    Dim cachedLogic As EmployeeLogic 
    
    cachedLogic = CType( Cache("ExpensiveEmployeeLogicObject"),
 EmployeeLogic)
    
    If (cachedLogic Is Nothing)
 Then
            cachedLogic = New EmployeeLogic            
    End If
        
    e.ObjectInstance = cachedLogic
    
End Sub ' GetEmployeeLogic

Sub ReturnEmployeeLogic(sender As Object,
 e As ObjectDataSourceDisposingEventArgs)
    
    ' Get the instance of the business object that the ObjectDataSource
 is working with.
    Dim cachedLogic  As EmployeeLogic  
    cachedLogic = CType( e.ObjectInstance, EmployeeLogic)
    
    ' Test to determine whether the object already exists in the cache.
    Dim temp As EmployeeLogic 
    temp = CType( Cache("ExpensiveEmployeeLogicObject"),
 EmployeeLogic)
    
    If (temp Is Nothing)
 Then
        ' If it does not yet exist in the Cache, add it.
        Cache.Insert("ExpensiveEmployeeLogicObject",
 cachedLogic)
    End If
    
    ' Cancel the event, so that the object will 
    ' not be Disposed if it implements IDisposable.
    e.Cancel = True
End Sub ' ReturnEmployeeLogic
</Script>

<html>
  <head>
    <title>ObjectDataSource - VB Example</title>
  </head>
  <body>
    <form id="Form1" method="post"
 runat="server">

        <asp:gridview
          id="GridView1"
          runat="server"          
          datasourceid="ObjectDataSource1">
        </asp:gridview>

        <asp:objectdatasource 
          id="ObjectDataSource1"
          runat="server"          
          selectmethod="GetCreateTime"          
          typename="Samples.AspNet.VB.EmployeeLogic"
          onobjectcreating="GetEmployeeLogic"
          onobjectdisposing="ReturnEmployeeLogic"
 >
        </asp:objectdatasource>        

    </form>
  </body>
</html>
<%@ Import namespace="Samples.AspNet.CS" %>
<%@ Page language="c#" %>
<Script runat="server">

// Instead of creating and destroying the business object each time,
 the 
// business object is cached in the ASP.NET Cache.
private void GetEmployeeLogic(object sender,
 ObjectDataSourceEventArgs e)
{
    // First check to see if an instance of this object already exists
 in the Cache.
    EmployeeLogic cachedLogic;
    
    cachedLogic = Cache["ExpensiveEmployeeLogicObject"] as EmployeeLogic;
    
    if (null == cachedLogic) {
            cachedLogic = new EmployeeLogic();            
    }
        
    e.ObjectInstance = cachedLogic;     
}

private void ReturnEmployeeLogic(object sender,
 ObjectDataSourceDisposingEventArgs e)
{    
    // Get the instance of the business object that the ObjectDataSource
 is working with.
    EmployeeLogic cachedLogic = e.ObjectInstance as EmployeeLogic;        
    
    // Test to determine whether the object already exists in the cache.
    EmployeeLogic temp = Cache["ExpensiveEmployeeLogicObject"] as EmployeeLogic;
    
    if (null == temp) {
        // If it does not yet exist in the Cache, add it.
        Cache.Insert("ExpensiveEmployeeLogicObject", cachedLogic);
    }
    
    // Cancel the event, so that the object will 
    // not be Disposed if it implements IDisposable.
    e.Cancel = true;
}
</Script>

<html>
  <head>
    <title>ObjectDataSource - C# Example</title>
  </head>
  <body>
    <form id="Form1" method="post" runat="server">

        <asp:gridview
          id="GridView1"
          runat="server"          
          datasourceid="ObjectDataSource1">
        </asp:gridview>

        <asp:objectdatasource 
          id="ObjectDataSource1"
          runat="server"          
          selectmethod="GetCreateTime"          
          typename="Samples.AspNet.CS.EmployeeLogic"
          onobjectcreating="GetEmployeeLogic"
          onobjectdisposing="ReturnEmployeeLogic" >
        </asp:objectdatasource>        

    </form>
  </body>
</html>

前のコード例使用した中間層ビジネス オブジェクトの例を、次のコード例示します。このコード例は、EmployeeLogic クラスによって定義され基本ビジネス オブジェクト構成されます。このクラスは、状態を保持しビジネス ロジックカプセル化ます。実際に動作させるためには、このコードライブラリとしてコンパイルし、これらのクラスを ASP ページから使用する必要があります

Imports System
Imports System.Collections
Imports System.Web.UI
Imports System.Web.UI.WebControls

Namespace Samples.AspNet.VB

  Public Class EmployeeLogic
    
    
    Public Sub New() 
        MyClass.New(DateTime.Now)
    
    End Sub 'New
    
    
    Public Sub New(ByVal
 creationTime As DateTime) 
        _creationTime = creationTime
    
    End Sub 'New
    
    Private _creationTime As DateTime
    
    
    ' Returns a collection of NorthwindEmployee objects.
    Public Function GetCreateTime() As
 ICollection 
        Dim al As New ArrayList()
        
        ' Returns creation time for this example.      
        al.Add("The business object that you are using was created
 at " + _creationTime)
        
        Return al
    
    End Function 'GetCreateTime
  End Class 'EmployeeLogic
End Namespace ' Samples.AspNet.VB
namespace Samples.AspNet.CS {

using System;
using System.Collections;
using System.Web.UI;
using System.Web.UI.WebControls;
  //
  // EmployeeLogic is a stateless business object that encapsulates
  // the operations you can perform on a NorthwindEmployee object.
  //
  public class EmployeeLogic {

    public EmployeeLogic () : this(DateTime.Now)
 {        
    }
    
    public EmployeeLogic (DateTime creationTime) { 
        _creationTime = creationTime;
    }

    private DateTime _creationTime;
    
    // Returns a collection of NorthwindEmployee objects.
    public ICollection GetCreateTime () {
      ArrayList al = new ArrayList();
      
      // Returns creation time for this example.      
      al.Add("The business object that you are using was
 created at " + _creationTime);
      
      return al;
    }
  }
}
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
System.Web.UI.WebControls 名前空間
ObjectDataSourceObjectEventHandler
ObjectDataSource クラス
OnObjectDisposing



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「ObjectDataSourceDisposingEventHandler デリゲート」の関連用語

ObjectDataSourceDisposingEventHandler デリゲートのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



ObjectDataSourceDisposingEventHandler デリゲートのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2025 Microsoft.All rights reserved.

©2025 GRAS Group, Inc.RSS