0

WorkflowsAndQueuesInitializerService というオブジェクトがあり、ワークフロー内のキューを定義し、指定された呼び出し結果が与えられると、次のステップもルーティングされます。パラメーターとして from ステップ インスタンスと次のステップのタイムスパンを取る CalculateDueDate と呼ばれるインターフェイス クラスから継承されたメソッドがあります。私が抱えている問題は、通常、入力テキスト フィールドからの入力が与えられた期日を、複数のクラス メソッド間で往復することなくオーバーライドできることです。私は NextStep と呼ばれるマップされたクラスを持っています。これには、期日のタイムスパンも取るコンストラクターがあります。私が達成したいのは、私のクラスフォームインスタンスで、入力テキストボックスから値を渡し、手間をかけずに期日を再計算したいということです。与えられた情報でこれを達成する簡単な方法はありますか?

public override void CollectFormValues(IFormValuesCollection values)
    {
        this.CalculatedShipDate = TypeConverter.ToNullableDateTime(values["CalculatedShipDate"]);
    }

上記は、HTTP POST からフォーム値を取得するメソッドです。

これは一時的なフォーム インスタンスです。つまり、アプリケーションはフォームの値をデータベースに自動的にコミットしません。通常、CollectFormValues()値をオブジェクトに保存するだけで、データベースには何もコミットしません。ただし、これは一時的な形式であるため、このメソッドは値をデータベースに保存する役割も果たします。

また、次の StepInstance の期日を計算するために使用するクラスのインスタンスを取得するクラスがあります。

public static IDueDateCalculator GetDueDateCalculator( string className )
    {
        if ( String.IsNullOrWhiteSpace( className ) )
            return new DefaultDueDateCalculator();

        Assembly assembly = typeof( IDueDateCalculator ).Assembly;
        Type calcType = assembly.GetType( className );
        return (IDueDateCalculator) Activator.CreateInstance( calcType );
    }

私の最善の解決策が何であるかがわからないため、フィードバックや支援のためにここに来る理由. 前もって感謝します!

4

1 に答える 1

0

私の理解が正しければ、期日を計算したいのですが、ユーザーがそれをオーバーライドできるようにしたいと考えています。

それはかなり簡単です。

これはVBですが、アイデアを得ることができるはずです。

Class Something

    Private oDueDate As Nullable(Of DateTime) = Nothing

    Private Sub CalculateDueDate
        oDueDate = {some calculation between the date and timespans}
    End Sub



    Public Property DueDate As DateTime
        Get
            If (Nothing Is oDueDate) OrElse (Not oDueDate.HasValue) Then
                CalculateDueDate
            End If
            Return oDueDate
        End Get
        Set(value as DateTime)
            oDueDate = value
        End Set
    End Property

End Class
于 2013-09-06T23:44:38.080 に答える