8

私のコードは次のとおりです。

IList<Users> myData = new List<Users>();

myData = HelperUsers.GetUsersList(); // return IList<Users>

BindingSource bsUsers = new BindingSource { DataSource = myData };
dataGridViewUsers.DataSource = bsUsers;

dataGridViewUsers.Columns["Name"].HeaderText = "Name";
dataGridViewUsers.Columns["LastName"].HeaderText = "Last name";

dataGridViewUsers.Invalidate();

デバッグではまだ完全に機能しますが、リリースとしてコンパイルすると、「オブジェクト参照がオブジェクトのインスタンスに設定されていません」というエラーが発生します。行で:

dataGridViewUsers.Columns["Name"].HeaderText = "Name";

ありがとう

4

1 に答える 1

9

ユーザー クラスの Name プロパティが名前変更/難読化されています。したがって、Columns コレクションにはエントリがありません。

Eazfuscator に従って、クラス プロパティの名前変更を無効にするために次の操作を実行できます。

[System.Reflection.ObfuscationAttribute(Feature = "properties renaming")]
class MyOneThousandAndThirdClass {
    // ...
}

または単一のプロパティの場合:

class MyOneThousandAndFourthClass {

    [System.Reflection.ObfuscationAttribute(Feature = "renaming")]
    public string DisplayName
    {
        get;
        set;
    }

}
于 2011-05-20T17:45:59.663 に答える