注:すべてのサンプルコードは大幅に簡素化されています。C#プロジェクトに含まれていないオブジェクトをどのようにインスタンス化しますか?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Web;
namespace RIV.Module
{
public interface IModule
{
StringWriter ProcessRequest(HttpContext context);
string Decrypt(string interactive);
string ExecutePlayerAction(object ParamObjectFromFlash);
void LogEvent(object LoggingObjectFromFlash);
}
}
さて、私の解決策の外に、他の開発者が具体的なクラスを定義することができますし、私のアプリのBINフォルダにドロップ:
私はとDLLが定義されています。多分何か:
今using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using RIV.Module;
namespace RIV.Module.Greeting
{
public class Module : IModule
{
public System.IO.StringWriter ProcessRequest(System.Web.HttpContext context)
{
//...
}
public string Decrypt(string interactive)
{
//...
}
public string ExecutePlayerAction(object ParamObjectFromFlash)
{
//...
}
public void LogEvent(object LoggingObjectFromFlash)
{
//...
}
}
}
、私のアプリでは、私は新しいモジュールがオフに基づいて、それを呼び出すことができ、次に利用できる(私はweb.configファイルまたはそれらの線に沿って何かを経由して推測しています)としたことを知っておく必要があります(特定のキャンペーンに使用するモジュールにマップされている)データベースキャンペーンテーブルのトリガーの一部です。
私はそれをこのようにインスタンス化しようとしています:
var type = typeof(RIV.Module.Greeting.Module);
var obj = (RIV.Module.Greeting.Module)Activator.CreateInstance(type);
しかし、コンパイラが参照がRIV.Module.Greeting.dllに設定されていなかったのでbelches!
私は間違っていますか?
これらのモジュールをどうすればいいのか分かりますか? –
@Anon:彼のインタフェースを使用しています。 – SLaks
ここで、どの時点でインスタンス化しようとしていますか? – deostroll