2

このチュートリアルを使用してソリューションにプラグイン アーキテクチャを作成し、ninject も初めて使用します。

http://www.codeproject.com/script/Articles/ArticleVersion.aspx?aid=358360&av=526320&msg=4308834#xx4308834xx

MVC アプリケーションでは、ユーザーがチェックアウト中に、選択した支払い方法を取得し、選択した支払い方法のプラグインを取得する必要があります。この方法でプラグイン コントローラーを取得することに成功しましたが、それが安全か許容できるかはわかりません。

Type type = Type.GetType(paymentMethod.PaymentMethodPluginType);  

 //get plugin controller

var paymentController = ServiceLocator.Current.GetInstance(type) as BasePaymentController;

//get validations from plugin

    var warnings = paymentController.ValidatePaymentForm(form);

        //get payment info from plugin

        var paymentInfo = paymentController.GetPaymentInfo(form);
        //…

支払いを処理するためのプラグイン クラスにもアクセスする必要があります。インターフェイス IPaymentMethod があります

  public partial interface IPaymentMethod 
  {
   void  PostProcessPayment (PostProcessPaymentRequest postprocessPaymentRequest);        

  }

そして、プラグイン PaymentProcessor をこのように

public class PluginPaymentProcessor :IPaymentMethod
    {        
        public void PostProcessPayment (PostProcessPaymentRequest postprocessPaymentRequest)
        {
            ///
        }

Now in MVC project I try to access PostProcessPayment method this way 

IPaymentMethod pluginpaymentmethod = ServiceLocator.Current.GetInstance<IPaymentMethod>(paymentMethod.PaymentProcessor);

ここで paymentMethod.PaymentProcessor は「MyApp.Plugins.MyPlugin.PluginPaymentProcessor, MyApp.Plugins.MyPlugin,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null」です。</p>

   And want to use pluginpaymentmethod like i do in controller example

pluginpaymentmethod.PostProcessPayment(postProcessPaymentRequest);

しかし、リソースが見つからず、pluginpaymentmethod が読み込まれていないというエラーがスローされます。どうすれば修正できますか、または同様の実装でチュートリアルを提案できますか? ありがとうございました。

4

1 に答える 1