私があなたを正しく理解していれば、たとえば Impormtu ライブラリ ( https://github.com/ekonbenefits/impromptu-interface、nuget パッケージもあります) を使用してこれを実現できます。完全なサンプル:
internal class Program {
private static void Main(string[] args) {
// suppose it's from another assembly, and you don't have direct reference to type
var c = Activator.CreateInstance(typeof(MyClass));
IMyClass iface = c.ActLike<IMyClass>();
iface.method1();
Console.ReadKey();
}
}
public class MyClass
{
public void method1() {
Console.WriteLine("Method 1");
}
public void method2() {
Console.WriteLine("Method 2");
}
}
public interface IMyClass {
void method1();
void method2();
}
MyClass は IMyClass インターフェイスを実装していませんが、実行時に IMyClass 型の変数として使用していることに注意してください。
コンパイル時にインターフェイスがなく、実行時にもインターフェイスを構築したい場合、実際にどのように使用できるかわかりません。