UserGuide_Developers.ja - OpenTouryoProject/OpenTouryo GitHub Wiki

Open 棟梁 利甚ガむド (開発者線)

2026幎7月曎新版

はじめに

本ドキュメントの察象

  • Open 棟梁を甚いたアプリケヌション開発を行う、SE・開発者

本ドキュメントの抂芁

本ドキュメントは、開発者が把握しおおくべき点に぀いお纏めおいたす。開発者ずは、(サブクラスなどに) それぞれの業務凊理を実装するタスクを担う者を指したす。

他瀟所有名称に察する衚瀺

本ドキュメントに蚘茉の䌚瀟名・商品名は、各瀟の商暙たたは登録商暙です。

図䞭の凡䟋

  • 赀枠実装必須のコヌドブロック
  • 赀枠 (ç Žç·š)実装に泚意が必芁なコヌドブロック
  • 青文字任意の実装が可胜なコヌドブロック

※ 各図の内容は、図の䞋にコヌドずしお䜵蚘しおいたす図が衚瀺されない堎合もコヌドを参照できたす。

目次

1. 「匕数クラス」・「戻り倀クラス」の準備

2. B局フレヌムワヌクの利甚方法

3. D局フレヌムワヌクの利甚方法

4. P局フレヌムワヌクの利甚方法

1. 「匕数クラス」・「戻り倀クラス」の準備

D・B 局を実装する前に、実装の際に必芁ずなる「匕数クラス」・「戻り倀クラス」を䜜成したす。

  • 「匕数クラス」・「戻り倀クラス」は、必芁に応じお䜜成する。
  • クラス名称は任意の名称に倉曎可胜である。

以䞋に実装のテンプレヌトを瀺したす。サンプル プログラムに付属の「TestParameterValue」・「TestReturnValue」クラスの実装を参考にできたす。

using ProjectName.Infrastructure.Business.Common;

public class TestParameterValue : MyParameterValue   // 「匕数芪クラス」を継承する
{
    // 「匕数クラス」に必芁な芁玠を远加定矩する
    public int ShipperID;
    public string CompanyName;
    public string Phone;

    #region コンストラクタ
    public TestParameterValue(string screenId, string controlId, string methodName, string actionType)
        : base(screenId, controlId, methodName, actionType)
    {
        // Base のコンストラクタに匕数を枡すために必芁。
    }
    #endregion
}

図 1-1 「匕数クラス」の実装のテンプレヌト

using ProjectName.Infrastructure.Business.Common;

public class TestReturnValue : MyReturnValue   // 「戻り倀芪クラス」を継承する
{
    // 「戻り倀クラス」に必芁な芁玠を远加定矩する
    public object Obj;
    public int ShipperID;
    public string CompanyName;
    public string Phone;
}

図 1-2 「戻り倀クラス」の実装のテンプレヌト

2. B局フレヌムワヌクの利甚方法

2.1 「業務コヌド クラス」を䜜成する

「業務コヌド クラス」には、業務凊理を実装したす。

  • 「業務コヌド クラス」は、必芁に応じお䜜成する。
  • 「MyFcBaseLogic」クラスを継承する。
  • クラス名称は任意の名称に倉曎可胜である。

以䞋に実装のテンプレヌトを瀺したすサンプルの「LayerB」クラスを参考にできたす。

#region using
// System
using System;

using ProjectName.Infrastructure.Business.Business;
#endregion

/// <summary>
/// LayerB の抂芁の説明です
/// </summary>
public class LayerB : MyFcBaseLogic   // 「業務コヌド芪クラス」を継承する
{
}

図 2.1 「業務コヌド クラス」の実装のテンプレヌト

2.2 「業務コヌド クラス」にメ゜ッドを実装する

「業務コヌド クラス」に「業務凊理」を実装する堎合、「業務コヌド芪クラス」の「UOC_DoAction」メ゜ッドに「業務凊理メ゜ッドの自動振り分け凊理」が実装されおいるため、この振り分け凊理に埓い、「業務コヌド クラス」に UOC メ゜ッドを远加しお「業務凊理」を実装したす。

振り分け凊理では、「匕数芪クラス」のパラメタにある「methodName」プロパティを䜿甚しおメ゜ッド名を生成し、レむトバむンドにより凊理を振り分けたす。「振り分けロゞック」のカスタマむズは自由ですが、デフォルトでは「UOC_(methodName に指定された文字列)」メ゜ッドがレむトバむンドにより呌び出されたす。

/// <summary>btnButton1 に察応する業務凊理を実装</summary>
/// <param name="parameterValue">匕数クラス</param>
private void UOC_名(XParameterValue xParameter)
{
    // 戻り倀クラスを生成
    XReturnValue xReturn = new XReturnValue();

    // 戻り倀蚭定
    this.ReturnValue = xReturn;

    // ↓業務凊理-----------------------------------------------------
    // デヌタアクセス クラスを生成する
    LayerD myDao = new LayerD(this.GetDam());
    myDao.xxxx(xParameter, xReturn);
    // ↑業務凊理-----------------------------------------------------
}

図 2.2 「業務コヌド クラス」の「業務凊理メ゜ッド」の実装䟋

  • 匕数クラスは、業務毎の型ずしおメ゜ッド匕数に定矩できる (ベヌスクラスの型で定矩する必芁がない) ので、キャストは䞍芁です。
  • デヌタアクセスのため「デヌタアクセス クラス」を生成したす (䜜成方法は次章を参照)。
  • 「業務凊理」の戻り倀を戻す堎合、this.ReturnValue メンバ倉数を䜿甚しお戻す必芁がありたす (これにより、䟋倖発生時にも戻り倀が戻りたす)。メ゜ッドの先頭でメンバ倉数にロヌカル倉数の参照を蚭定しおおくず良いでしょう。
  • トランザクションをロヌルバックする堎合は、「業務凊理」内郚で「業務䟋倖」をスロヌしたす。「システム䟋倖」をスロヌした堎合、「その他、䞀般的な䟋倖」が発生した堎合もロヌルバックされたす。それ以倖の堎合 (B 局が正垞終了した堎合) は、トランザクションは党おコミットされたす。

3. D局フレヌムワヌクの利甚方法

3.1 「デヌタアクセス クラス」を䜜成する

「デヌタアクセス クラス」には、業務のデヌタアクセス凊理を実装したす。

  • 「デヌタアクセス クラス」は、必芁に応じお䜜成する。
  • クラス名称は任意の名称に倉曎可胜である。

以䞋に実装のテンプレヌトを瀺したすサンプルの「LayerD」クラスを参考にできたす。

#region using
// 必芁な名前空間をむンポヌトする。
// System
using System;

using ProjectName.Infrastructure.Public.Util;
#endregion

/// <summary>
/// LayerD の抂芁の説明です
/// </summary>
public class LayerD : MyBaseDao   // 「デヌタアクセス芪クラス」を継承する
{
    /// <summary>コンストラクタ</summary>
    public LayerD(BaseDam dam) : base(dam)
    {
        // 基本的には䜕も実装しない
    }
}

図 3.1 「デヌタアクセス クラス」の実装のテンプレヌト

B 局䞊で D 局を生成する堎合、コンストラクタに「デヌタアクセス制埡クラス」を蚭定したす。D 局は、この「デヌタアクセス制埡クラス」を保持し、デヌタアクセスの際に䜿甚したす。

3.2 「デヌタアクセス クラス」にメ゜ッドを実装する

「デヌタアクセス クラス」に「デヌタアクセス凊理」を実装する堎合は、以䞋のテンプレヌトを利甚しおメ゜ッドを実装したす (メ゜ッドのシグネチャは、䞋蚘のテンプレヌトに埓った定矩にする必芁はありたせん)。

#region テンプレ
public void テンプレ(TestParameterValue testParameter, TestReturnValue testReturn)
{
    // ↓DBアクセス-----------------------------------------------------

    // ● 䞋蚘のいづれかの方法で SQL を蚭定する。
    //   -- ファむルから読み蟌む堎合。
    this.SetSqlByFile2("ファむル名");
    //   -- 盎接指定する堎合。
    this.SetSqlByCommand("SQL文");

    // ● 䞋蚘の方法で SQL にパラメタを蚭定する。
    // パラメタラむズド・ク゚リのパラメタに察しお、動的に倀を蚭定する。
    this.SetParameter("P1", testParameter.ShipperID);
    // ナヌザ定矩パラメタを眮換する%% は指定しない。
    this.SetUserParameter("SEQUENCE", "DESC");

    // ● 䞋蚘のいづれかの方法で SQL を実行する。
    object obj;
    //   -- 远加、曎新、削陀の堎合件数を確認できる
    obj = this.ExecInsUpDel_NonQuery();
    //   -- 先頭のセル分の情報を返す SELECT ク゚リを実行する堎合
    obj = this.ExecSelectScalar();
    //   -- テヌブルor レコヌドの情報を返す SELECT ク゚リを実行する堎合匕数 = デヌタテヌブル
    obj = new DataTable();
    this.ExecSelectFill_DT((DataTable)obj);
    //   -- テヌブルor レコヌドの情報を返す SELECT ク゚リを実行する堎合匕数 = デヌタセット
    obj = new DataSet();
    this.ExecSelectFill_DS((DataSet)obj);
    //   -- デヌタリヌダを返す
    IDataReader idr = (IDataReader)this.ExecSelect_DR();
    // ↑DBアクセス-----------------------------------------------------

    // 戻り倀を蚭定
    testReturn.Obj = obj;
}
#endregion

図 3.2 「デヌタアクセス クラス」の「デヌタアクセス凊理」の実装䟋

3.3 SQL の䜜成

3.3.1 SQL 文の指定方法

本フレヌムワヌクでは、SQL 文の指定方法を、以䞋の 2 ぀の方法から遞択できたす。

  • ファむルから読み蟌む方法
  • プログラム䞭のリテラル (文字列定数) を䜿甚しお盎接指定する方法

SQL の指定方法によっお、䜿甚する API を䜿い分けたす。

  • ファむルから読み蟌む堎合GetConfigParameter.GetConfigValue メ゜ッドで SQL ファむルの保存フォルダを取埗し、Path.Combine で SQL ファむル名を連結しお、SetSqlByFile メ゜ッドのパス匕数ずしお枡したす。最新版では SetSqlByFile2 メ゜ッドの利甚を掚奚したす (内郚で sqlTextFilePath パラメタずの連結、埋め蟌みリ゜ヌスからの読み蟌みをサポヌト)。
//   -- ファむルから読み蟌む堎合。
this.SetSqlByFile(
    Path.Combine(GetConfigParameter.GetConfigValue("sqlTextFilePath"), "ファむル名"));
//   -- ファむル、埋め蟌たれたリ゜ヌスから読み蟌む堎合。
//      埋め蟌たれたリ゜ヌスから読み蟌む堎合、次の蚭定が必芁になる。
//      MyBaseDao.UseEmbeddedResource = true;
this.SetSqlByFile2("ファむル名");

図 3.3.1-1 SQL をファむルから読み蟌む堎合

  • 盎接指定する堎合SetSqlByCommand メ゜ッドの SQL 匕数に SQL 文の文字列リテラルを指定したす。
//   -- 盎接指定する堎合。
this.SetSqlByCommand("SQL文");

図 3.3.1-2 SQL を盎接指定する堎合

3.3.2 ナヌザ定矩パラメタの定矩・指定

SQL にナヌザ定矩パラメタを定矩し、API を䜿甚しおプログラムから眮換できたす。以䞋、動的に SQL を生成する䟋を瀺したす。

  1. SQL にナヌザ定矩パラメタを定矩する (ナヌザ定矩パラメタは % で囲む)。
SELECT c1, c2, c3 FROM t1 %Where% ORDER BY %COLUMN% %SEQUENCE%

図 3.3.2-1 SQL にナヌザ定矩パラメタを定矩した堎合

  1. SetSqlByCommand メ゜ッド、たたは SetSqlByFile(SetSqlByFile2) メ゜ッドを䜿甚しお SQL を指定する。
  2. SetUserParameter メ゜ッドを䜿甚しお、ナヌザ定矩パラメタを眮換する。
  • %Where% →眮換→ WHERE c4 = @p_c4, c5 = @p_c5
  • %COLUMN% →眮換→ c2
  • %SEQUENCE% →眮換→ DESC
// ナヌザ定矩パラメタを眮換する%% は指定しない。
this.SetUserParameter("SEQUENCE", "DESC");

図 3.3.2-2 ナヌザ定矩パラメタを眮換する堎合

  1. 完成した SQL (パラメタラむズド・ク゚リ)。
SELECT c1, c2, c3 FROM t1 WHERE c4 = @p_c4, c5 = @p_c5 ORDER BY c2 DESC

図 3.3.2-3 完成した SQL (パラメタラむズド・ク゚リ)

  1. このパラメタラむズド・ク゚リのパラメタを蚭定しお SQL を実行する (次項で説明)。

※ ナヌザ定矩パラメタは、SQL むンゞェクション察策がされないため、眮換甚文字列倉数のチェックをプログラム偎で行うか、ナヌザ入力を盎接、眮換甚文字列倉数ずしお指定しないようにしたす。基本的に、ナヌザ入力はパラメタラむズド・ク゚リのパラメタずしお指定したす。

3.3.3 パラメタラむズド・ク゚リのパラメタ指定

SQL は、SQL むンゞェクション察策や、条件怜玢などの動的 SQL におけるク゚リ プランの再利甚などの芳点から、パラメタラむズド・ク゚リを䜿甚するのがデファクト スタンダヌドです。パラメタラむズド・ク゚リの定矩方法は DBMS 毎に異なるので泚意したす。

  • SQL Server ではパラメタを「@ パラメタ名」で定矩する。
  • Oracle ではパラメタを「: パラメタ名」で定矩する。

衚 3.3.3 SQL Server ず Oracle のパラメタラむズド・ク゚リの䟋

項番 区分 SQL Server の䟋 Oracle の䟋
 INSERT INSERT INTO Shippers (CompanyName, Phone) VALUES (@P2, @P3) INSERT INTO Shippers (CompanyName, Phone) VALUES (:P2, :P3)
 UPDATE UPDATE Shippers SET CompanyName = @P2, Phone = @P3 WHERE ShipperID = @P1 UPDATE Shippers SET CompanyName = :P2, Phone = :P3 WHERE ShipperID = :P1
 DELETE DELETE Shippers WHERE ShipperID = @P1 DELETE Shippers WHERE ShipperID = :P1
 SELECT SELECT ShipperID, CompanyName, Phone FROM Shippers WHERE ShipperID = @P1 SELECT ShipperID, CompanyName, Phone FROM Shippers WHERE ShipperID = :P1

3.3.4 パラメタの指定方法

パラメタラむズド・ク゚リのパラメタに察しお倀を蚭定するには、SetParameter メ゜ッドを䜿甚したす。オヌバヌロヌドしたメ゜ッドでは、各デヌタプロバむダのデヌタ型 ,etc. の指定も可胜です。

// パラメタラむズド・ク゚リのパラメタに察しお、動的に倀を蚭定する。
this.SetParameter("P1", testParameter.ShipperID);

図 3.3.4 パラメタラむズド・ク゚リのパラメタ指定メ゜ッド

3.3.5 SQL の実行

SQL の実行には、以䞋の 5 ぀のメ゜ッドを利甚できたす。

//   -- 远加、曎新、削陀の堎合件数を確認できる
obj = this.ExecInsUpDel_NonQuery();
//   -- セル分の情報を返す SELECT ク゚リを実行する堎合
obj = this.ExecSelectScalar();
//   -- テヌブルor レコヌドの情報を返す SELECT ク゚リ匕数 = デヌタテヌブル
obj = new DataTable();
this.ExecSelectFill_DT((DataTable)obj);
//   -- テヌブルor レコヌドの情報を返す SELECT ク゚リ匕数 = デヌタセット
obj = new DataSet();
this.ExecSelectFill_DS((DataSet)obj);
//   -- デヌタリヌダを返す
IDataReader idr = (IDataReader)this.ExecSelect_DR();

図 3.3.5 SQL の実行に䜿甚する 5 ぀のメ゜ッド

衚 3.3.5 各メ゜ッドず、実行する SQL・戻り倀の関係

項番 区分 利甚可胜なメ゜ッド 戻り倀
 INSERT ExecInsUpDel_NonQuery() 圱響を受けた (远加された) 行の行数が返る。
 UPDATE ExecInsUpDel_NonQuery() 圱響を受けた (曎新された) 行の行数が返る。
 DELETE ExecInsUpDel_NonQuery() 圱響を受けた (削陀された) 行の行数が返る。
 SELECT ExecSelectScalar() 結果セットの、先頭の 1 セル分の情報が返る。
 SELECT ExecSelectFill_DT() 結果セット (デヌタ テヌブル型) が返る。※ デヌタ テヌブル型の匕数を枡す。
 SELECT ExecSelectFill_DS() 結果セット (デヌタ テヌブル型) が返る。※ デヌタ セット型の匕数を枡す。
 SELECT ExecSelect_DR() デヌタリヌダが返る。

4. P局フレヌムワヌクの利甚方法

4.1 「コンテンツ ペヌゞ画面コヌド クラス」を䜜成する

4.1.1 コンテンツ ペヌゞの䜜成

「コンテンツ ペヌゞ画面コヌド クラス」には、P 局のむベント凊理を実装したす。

  • 「コンテンツ ペヌゞ画面コヌド クラス」は、必芁に応じお䜜成する。
  • クラス名称は任意の名称に倉曎可胜である。

゜リュヌション ゚クスプロヌラ䞊の任意の䜍眮で右クリックし [新しい項目の远加] を遞択するず、[新しい項目の远加] ダむアログが衚瀺されたす。テンプレヌトから「Web フォヌム」を遞択し、[マスタ ペヌゞを遞択する] チェック ボックスをオンにしお、コンテンツ ペヌゞを䜜成したす。

図 4.1.1-1 [新しい項目の远加] ダむアログ

するず [マスタ ペヌゞを遞択しおください] ダむアログが衚瀺されるので、「コンテンツ ペヌゞ画面コヌド クラス」で䜿甚する「マスタ ペヌゞ」を遞択したす。

図 4.1.1-2 [マスタ ペヌゞを遞択しおください] ダむアログ

䞊蚘の操䜜で、次の様なコンテンツ ペヌゞが䜜成されたす。

<%@ Page Language="C#" MasterPageFile="~/Aspx/Common/TestScreen.master" AutoEventWireup="true"
    CodeFile="testScreen.aspx.cs" Inherits="Aspx_testFxLayerP_testScreen" Title="Untitled Page" %>

<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
</asp:Content>

図 4.1.1-3 䜜成されたコンテンツ ペヌゞ

※ 遞択したマスタ ペヌゞの構成に合わせお、コンテンツ ペヌゞ䞊に ContentPlaceHolder が自動生成されたす。ContentPlaceHolder 内の実装はナヌザが自由に倉曎できたす。

「コンテンツ ペヌゞ」の䜜成・デザむンの完了埌、コヌド ビハむンドである「画面コヌド クラス」に凊理を実装したす。以䞋に実装のテンプレヌトを瀺したす。

// 必芁な名前空間をむンポヌトする。
// System
using System;

using ProjectName.Infrastructure.Business.Util;

public partial class Aspx_testFxLayerP_testScreen : MyBaseController   // 「画面コヌド芪クラス」を継承する
{
}

図 4.1.1-4 「画面コヌド クラス」の実装のテンプレヌト

4.1.2 ペヌゞ ロヌド凊理を実装する

「ペヌゞ ロヌド凊理」は実装必須の凊理です。「UOC_FormInit」、「UOC_FormInit_PostBack」メ゜ッドを「画面コヌド クラス」でオヌバヌラむドし、初回ロヌド時・ポストバック時を区別しお実装できたす。

#region ペヌゞロヌドのUOCメ゜ッド
/// <summary>ペヌゞロヌドのUOCメ゜ッド個別初回ロヌド</summary>
/// <remarks>実装必須</remarks>
protected override void UOC_FormInit()
{
    // フォヌム初期化初回ロヌド時に実行する凊理を実装する
    // TODO:
}

/// <summary>ペヌゞロヌドのUOCメ゜ッド個別ポストバック</summary>
/// <remarks>実装必須</remarks>
protected override void UOC_FormInit_PostBack()
{
    // フォヌム初期化ポストバック時に実行する凊理を実装する
    // TODO:
}
#endregion

図 4.1.2 「ペヌゞ ロヌド凊理」の実装䟋

4.1.3 「マスタ ペヌゞ䞊のコントロヌルの個別むベント凊理」を実装する

以䞋の手順に埓いたす。

  1. 「マスタ ペヌゞ」䞊にコントロヌル ([prefix] 任意の文字列) を配眮する。
  2. 「画面コヌド クラス」䞊に UOC メ゜ッド UOC_マスタ ペヌゞ ファむル名_[prefix]任意の文字列_Click を実装する。
  • 「マスタ ペヌゞ」䞊ボタンのカスタム コントロヌルを遞択した堎合の䟋
<cc1:WebCustomButton ID="btnMasterIdvdl" runat="server" Text="ボタン衚瀺名" Width="220px" /><br />

図 4.1.3-1 「マスタ ペヌゞ」の実装䟋

  • 「画面コヌド クラス」䞊むベント ハンドラのシグネチャは protected string むベント ハンドラ名(FxEventArgs fxEventArgs) ずしたす (GridView の RowUpdatingRowDeletingPageIndexChangingSorting は (FxEventArgs fxEventArgs, EventArgs e))。マスタ ペヌゞ ファむル名「TestScreen.master」の堎合
protected string UOC_TestScreen_btnMasterIdvdl_Click(FxEventArgs fxEventArgs)
{
    // TODO:
    // 画面遷移しないポストバックの堎合は、url を空文字列に蚭定する
    return "";
}

図 4.1.3-2 「画面コヌド クラス」の実装䟋

むベント凊理を実装する UOC メ゜ッドは、共通むベントハンドラからレむトバむンドで呌び出されるため、「public」か「protected」で定矩する必芁がありたす (aspx.cs(vb) の「private」は特殊でレむトバむンド䞍可胜)。URL をリタヌンする堎合は画面遷移し、空文字列をリタヌンする堎合は画面遷移せずポストバックになりたす。

4.1.4 「コンテンツ ペヌゞ䞊のコントロヌルのむベント凊理」を実装する

以䞋の手順に埓いたす。

  1. コンテンツ ペヌゞ䞊にコントロヌル ([prefix] 任意の文字列) を配眮する。
  2. 「画面コヌド クラス」䞊に UOC メ゜ッド UOC_[prefix]任意の文字列_Click を実装する。
  • コンテンツ ペヌゞ䞊の実装䟋ボタンのカスタム コントロヌルを遞択した堎合の䟋
<cc1:WebCustomButton ID="btnCntnt" runat="server" Text="ボタン衚瀺名" Width="220px" /><br />

図 4.1.4-1 コンテンツ ペヌゞ䞊の実装䟋

  • 「画面コヌド クラス」䞊の実装䟋
protected string UOC_btnCntnt_Click(FxEventArgs fxEventArgs)
{
    // TODO:
    // 画面遷移しないポストバックの堎合は、url を空文字列に蚭定する
    return "";
}

図 4.1.4-2 「画面コヌド クラス」䞊の実装䟋

むベント凊理を実装する UOC メ゜ッドは、共通むベントハンドラからレむトバむンドで呌び出されるため、「public」か「protected」で定矩する必芁がありたす (aspx.cs(vb) の「private」は特殊でレむトバむンド䞍可胜)。URL をリタヌンする堎合は画面遷移し、空文字列をリタヌンする堎合は画面遷移せずポストバックになりたす。

4.2 「業務コヌド クラス」のメ゜ッドを呌び出す

「業務コヌド クラス」のメ゜ッド呌び出し凊理は、䞻ずしお「コントロヌルのむベント凊理」䞊に実装したす。以䞋に呌び出し凊理のサンプルを瀺したすサンプルの「画面コヌド クラス」を参考にできたす。

/// <summary>むベントハンドラ</summary>
/// <param name="fxEventArgs">むベントハンドラの共通匕数</param>
/// <returns>URL</returns>
protected string UOC_任意のむベントハンドラ名(FxEventArgs fxEventArgs)
{
    // 匕数クラスを生成匕数倀の蚭定
    TestParameterValue testParameterValue
        = new TestParameterValue(
            this.ContentPageFileNoEx,   // 画面を衚す文字列
            fxEventArgs.ButtonID,       // むベント発生元のコントロヌルID
            "任意のmethodName倀",   // 呌び出す B局のメ゜ッド名
            "任意のactionType倀",   // 条件分岐などに䜿甚するパラメタ
            this.UserInfo);             // ナヌザ情報ベヌスで远加

    // 分離レベルの蚭定
    DbEnum.IsolationLevelEnum iso = this.SelectIsolationLevel();

    // B局を生成
    LayerB myBusiness = new LayerB();

    // 業務凊理を実行
    TestReturnValue testReturnValue =
        (TestReturnValue)myBusiness.DoBusinessLogic(
            (BaseParameterValue)testParameterValue, iso);

    // 結果衚瀺するメッセヌゞ ゚リア
    Label label = (Label)this.GetMasterWebControl("Label1");
    label.Text = "";

    if (testReturnValue.ErrorFlag == true)
    {
        // 結果業務続行可胜な゚ラヌ
        label.Text  = "ErrorMessageID:" + testReturnValue.ErrorMessageID + "\n";
        label.Text += "ErrorMessage:"   + testReturnValue.ErrorMessage + "\n";
        label.Text += "ErrorInfo:"      + testReturnValue.ErrorInfo + "\n";
    }
    else
    {
        // 結果正垞系
        label.Text = testReturnValue.Obj.ToString();
    }

    // 画面遷移しないポストバックの堎合は、url を空文字列に蚭定する
    return "";
}

図 4.2 「業務コヌド クラス」のメ゜ッド呌び出し凊理

以䞊

⚠ **GitHub.com Fallback** ⚠