忍者ブログ

技術メモ

Home > ブログ > .Netframework

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

【Validatorについての検証】

①CutomValidator
 .Net2.0からはValidateEmptyTextを利用して空白の場合でもCustomValidatorの検証実行できる
 ※.Net2.0以前はこのプロパティは存在しない

ValidatorValidate(document.getElementById('cstvalSocialInsuranceStateSearchStandardRewardGradeEnd'), 'mainValidationGroup', null);
    var validationGroup = 'mainValidationGroup';

 

PR

.NET参照ツール一覧

GAC(Global Assembly Cache)
    Systemroot%\assemblyフォルダ
    gacutilユーティルで登録
    Drag&Dropで登録
.NET Framework Configuration管理ツール
    「管理ツール」-「[Microsoft .NET Framework 1.1 構成]」
PEファイル参照
    dumpbin
アセンブリ情報参照
    ildasm

◆全てのメンバーを取得する

全てのメンバーを取得する
tp.GetMembers(Reflection.BindingFlags.Public Or Reflection.BindingFlags.NonPublic Or Reflection.BindingFlags.Instance Or Reflection.BindingFlags.Static Or Reflection.BindingFlags.DeclaredOnly)

Public Constの取得は下
tp.GetFields(Reflection.BindingFlags.Public Or Reflection.BindingFlags.Instance Or Reflection.BindingFlags.Static Or Reflection.BindingFlags.DeclaredOnly)
Private Constの取得は下
tp.GetFields(Reflection.BindingFlags.NonPublic Or Reflection.BindingFlags.Instance Or Reflection.BindingFlags.Static Or Reflection.BindingFlags.DeclaredOnly)
※但し、これ以外にも取得出来ちゃう?

フィールド、メンバ、プロパティの違い・・・

 

◆「参照の追加ダイアログ」に独自アセンブリを追加する

レジストリーに登録する
①【.NET Framework 2.0】「すべてのユーザーで共有する場合」のレジストリ・キー
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727\AssemblyFoldersEx

②【.NET Framework 1.x】「すべてのユーザーで共有する場合」のレジストリ・キー
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\AssemblyFolders

③【.NET Framework 2.0】「現在のユーザーのみに適用する場合」のレジストリ・キー
HKEY_CURRENT_USER\Software\Microsoft\.NETFramework\v2.0.50727\AssemblyFoldersEx

④【.NET Framework 1.x】「現在のユーザーのみに適用する場合」のレジストリ・キー
HKEY_CURRENT_USER\Software\Microsoft\.NETFramework\AssemblyFolders

なお、GACに登録しても「参照の追加ダイアログ」には表示されない
因みに、GACに登録されている場合、参照追加されたアセンブリの
ローカルコピープロパティは「TRUE」に、GACに登録されていない場合は、「FALSE」になる

 

【Reflectionを使った文字列からのメソッド・プロパティ呼出及びクラスインスタンス化】

1.メソッドの呼出
    //型情報を取得
    Type tp = this.GetType();
    //型情報からメソッド情報を取得
    MethodInfo mi = tp.GetMethod(メソッド名);
    //メソッド情報からメソッド呼出
    XXX rtn = (XXX)mi.Invoke(tp, new object[] { 引数1,引数2,・・・ });

2.プロパティの呼出
    //型情報を取得
    Type tp = this.GetType();
    //型情報からプロパティ情報を取得
    System.Reflection.PropertyInfo pi = tp.GetProperty();
    //プロパティ情報から値を取得
    string aaa = (aaa)pi.GetValue(tp, null);
    pi.SetValue(tp, 設定値,null);

3.インスタンスの作成
    //対象となるアセンブリのロード(※ロードされていない場合)
    Assembly asm = Assembly.LoadFrom("ErcCommonProject.dll");
    //アセンブリ内の対象クラス情報を取得
    Type tp = asm.GetType(クラス名);
    //インスタンス作成
    クラス名 clsinstance = (クラス名)Activator.CreateInstance(tp);

 


PAGE TOP