3

私は次のタイプを持っています:

public class TimeBand
{
    public string DayName { get; set; }
    public int customerId { get; set; }
}

TimeBands を含むリストを作成しています。

var TimeBandList = new List<TimeBand>
    {
        new TimeBand()
            {
                DayName = DayOfWeek.Monday.ToString(),
                customerId = 10
            },
        new TimeBand()
            {
                DayName = DayOfWeek.Tuesday.ToString(),
                customerId = 11
            }
            .....
    };

そして、次を使用して TimeBands を別のリストにロードしています。

    var timeBandRange = new List<TimeBand>();

    timeBandRange = TimeBandList.Where
                  (p => p.customerId == newCustomerId  
                     && p.DayName == date.DayOfWeek.ToString()).ToList();

これは問題なく動作していましたが、TimeBand クラスでは、DayNameプロパティの型を文字列からDayOfWeekに変更することにしたので、コードは次のようになりました。

public class TimeBand
{
    public DayOfWeek DayName { get; set; }
    public int customerId { get; set; }
}

var TimeBandList = new List<TimeBand>
    {
        new TimeBand()
            {
                DayName = DayOfWeek.Monday,
                customerId = 10
            },
        new TimeBand()
            {
                DayName = DayOfWeek.Tuesday,
                customerId = 11
            }
            .....
    };

    DateTime date = IndDate;
    var timeBandRange = new List<TimeBand>();

    timeBandRange = TimeBandList.Where
                  (p => p.customerId == parameter.customerId  
                     && p.DayName == date.DayOfWeek).ToList();

この新しいコードは TimeBandList.Where行で失敗し、次のエラーが発生します: System.MissingMethodException: メソッドが見つかりません: 'System.String TimeBand.get_DayName()'.

理由はありますか?

ありがとう

4

3 に答える 3

2

以前も同じ問題がありました。クラス ライブラリを参照する SharePoint プロジェクトがありました。.net 4.0 以降では、DLL は次の場所に挿入されますC:\Windows\Microsoft.NET\assembly\GAC_MSIL\。そのため、上記と同じエラーが発生した場合は、ソリューションを再構築し、DLL を GAC_MSIL に再度展開する必要があります。そうしないと、古い DLL が引き続き参照されます。

于 2013-12-01T12:58:22.577 に答える