.NET Framework 3.0 と .NET Framework 3.5 の間で、一部のルール機能が変更されました。これらの変更点を次の一覧に示します。
- ルール アクションでは、null 許容型が null 参照 (Visual Basic では Nothing) より大きいと記述すると、.NET Framework 3.0 のルール エンジンで、この比較が常に true になります。.NET Framework 3.5 では、この比較が C# の動作と同じく false になります。.NET Framework 3.0 でこの問題を回避するには、null 許容型を任意の値と比較する前に null 参照 (Visual Basic では Nothing) に対するカスタム チェックを実行する必要があります。
- カスタム条件では、実行時に条件によって返される型を、デザイン時にルール エンジンに指示します。.NET Framework 3.0 では、カスタム条件が、デザイン時に指定された型とは異なる型を実行時に返すことができます。.NET Framework 3.5 では、このシナリオは失敗します。
- .NET Framework 3.0 では、string データ型と char データ型を連結すると、誤った結果が生成されます。たとえば、string "s" に char 'c' を連結すると、連結結果は "s43" になります。.NET Framework 3.5 の場合、連結結果は "sc" です。.NET Framework 3.0 で正しい動作を実行するには、連結前に char データ型を string データ型にキャストします。
- .NET Framework 3.0 では、| や & などの論理演算子を使用した 2 つの null 許容 bool データ型を比較すると、どちらかの bool が null 参照 (Visual Basic では Nothing) に設定されている場合は、null 参照 (Visual Basic では Nothing) が返されます。この動作は、C# 仕様で定義されている動作とは異なります。.NET Framework 3.5 では、2 つのブール値の比較の動作が「C# 3.0 の仕様」で定義されている動作と一致しています。.NET Framework 3.0 で正しい動作を実行するには、null 許容 bool データ型のカスタム チェックを実行する必要があります。ルール定義内の C# コードを再利用する場合は、C# ルールと WF ルールの動作の違いに対応するよう C# コードを変更する必要があります。
- .NET Framework 3.0 では、カスタム ルール条件内部から ActivityExecutionContext オブジェクトにアクセスできませんが、.NET Framework 3.5 ではアクセスできます。
関連項目
その他の技術情報
Copyright © 2007 by Microsoft Corporation. All rights reserved.