このチュートリアルを使用してソリューションにプラグイン アーキテクチャを作成し、ninject も初めて使用します。
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 が読み込まれていないというエラーがスローされます。どうすれば修正できますか、または同様の実装でチュートリアルを提案できますか? ありがとうございました。