2013/07/23(Tue) 10:21:56 編集(投稿者)
■No67282 (TAKAHIRO さん) に返信
書いてある通りの実装に近いと思われるものです。
namespace MyIndexers
{
	public interface Iindexer
	{
		string LineCut(string line);
	}
	public class indexer1:Iindexer
	{
		string name;
		int nameLen = 20;
		string age;
		int ageLen = 3;
		int allLen = 23;
		string Iindexer.LineCut(string line)
		{
			if (line.Length == allLen)
			{
				name = line.Substring(0, nameLen);
				age = line.Substring(nameLen);
				return name + "," + age;
			}
			else
			{
				return "";
			}
		}
	}
	public class indexer2:Iindexer
	{
		string job;
		int jobLen = 10;
		string saraly;
		int salaryLen = 8;
		int allLen = 18;
		string Iindexer.LineCut(string line)
		{
			if(line.Length == allLen){
				job = line.Substring(0, jobLen);
				saraly = line.Substring(jobLen);
				return job + "," + saraly;
			}else{
				return "";
			}
		}
	}
}
使う方(とりあえずFormにTextBox配置で実装してみました)
using System.Reflection;
	public partial class Form1 : Form
	{
		public Form1()
		{
			InitializeComponent();
		}
		private void button1_Click(object sender, EventArgs e)
		{
            // 実行されれているファイルを取得
			Assembly exeasm = Assembly.GetExecutingAssembly();
                        // textBox1に入力された型名の型情報を取得(名前空間は固定)
			Type IndexerType = exeasm.GetType("MyIndexers." + textBox1.Text);
                        // 型情報からインスタンスを作成
                        // Iindexerインターフェースを実装しているのでキャストが可能
			Iindexer inst = (Iindexer)Activator.CreateInstance(IndexerType);
                        // LineCutを実行
			textBox3.Text = inst.LineCut(textBox2.Text);
		}
	}