質問

現在の思いをある程度理解することができる側面に関するプログラミングC#.現地に行って学習 LateBinding.について?解決方法を簡単なプログラムの一つです。

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("Try to do something with late bindings");
        Assembly a = null;
        try
        {
            a = Assembly.Load("CarLibrary");
            Console.WriteLine("1");
        }
        catch (FileNotFoundException ex)
        {
            Console.WriteLine(ex.Message);
        }
        if (a == null)
        {
            CreateUsingLateBinding(a);
        }
        Console.ReadLine();
    }

    private static void CreateUsingLateBinding(Assembly asm)
    {
        try
        {
            Type sportCar = asm.GetType("CarLibrary.SportCar");
            object obj = Activator.CreateInstance(sportCar);
            Console.WriteLine("Success");
            MethodInfo mi = sportCar.GetMethod("TurboBust");
            mi.Invoke(obj, null);
        }
        catch (Exception)
        { }
    }

もの作成CarLibrary.dll に入れて一つのフォルダにまとめた。ILDASMスクリーンショット

CarLibrary ILDASM

すべての作品。い 複数の質問 にしたこ

  • きの練を使用。
  • を利用した場合、LateBindingあるとされていないわからないことなるリソースを使いたいのは知っています(この場合においてなぜかできないプログラムを書くには、正常てしまうと各クラスとメソッドからこのリソース)?まだまだ少し混乱しえってその回答結果のみをどのように利用します。
役に立ちましたか?

解決

どうでも授業

ex Dll、

公共のクラスの学生:人{}

Dll B

公開授業担当教員:人{}

の人は共通組み立てによって参照されるこれらのdll、お申込は、このように異なる実装のバーチャル-ユニバーシティの方法等反射を読み込むことができすべての授業を受け継ぐかのクラス。

public static IEnumerable<Type> GetSubclassesForType(Type baseClassType)
{
    List<Type> types = new List<Type>();
    foreach (Assembly ass in AppDomain.CurrentDomain.GetAssemblies())
    {
       types.AddRange(ass.GetTypes().Where(type => type.IsSubclassOf(baseClassType)));
    }
    return types;
}

public static IEnumerable<Type> GetSubclassesForType(Assembly assembly, Type baseClassType)
{
    return from type in assembly.GetTypes() 
                        where type.IsSubclassOf(baseClassType)    
                        select type;
}

他の利用が遅く結合することができる場合に使用して更新したいお申込みによる複製は、dllを含む一部のコードです。この人の助けたいときに更新の高速複数のクライアントアプリケーション.(注:また、あなたがキャッシュの結果、反射後の結合はパフォーマンスを向上させ)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top