У меня странная проблема с Visual Studio 2008 только в одном из моих проектов. Когда я устанавливаю точку останова в строке кода, она попадает в нормальное состояние, но когда я пытаюсь «перешагнуть» или что-то еще, что должно пройти через эту точку останова и остановиться на следующей строке, код выполняется и продолжает, как будто я нажал F5. Это происходит, даже если у меня есть другая точка останова на линии сразу после этой, и, как ни странно, вторая точка останова игнорируется (иногда).
Кто-нибудь, есть идеи?
ОБНОВЛЕНО
Вот пример кода. Но, похоже, что везде, где у меня есть блок try ... catch, в который выдается исключение, у меня возникает эта проблема.
В следующем примере кода «return (T) bFormatter.Deserialize (mStream)» выдает исключение.
public static T LoadEncryptedObject<T>(string location) where T : class
{
if( string.IsNullOrEmpty(location) || !System.IO.File.Exists(location) )
return default(T);
System.IO.FileStream fs = null;
try
{
fs = new System.IO.FileStream(location, System.IO.FileMode.Open,
System.IO.FileAccess.Read, System.IO.FileShare.ReadWrite);
BinaryFormatter bFormatter = new BinaryFormatter();
byte[] encryptedBytes = new byte[fs.Length];
fs.Read(encryptedBytes, 0, encryptedBytes.Length);
MemoryStream mStream = new MemoryStream(Cryptography.Decrypt(encryptedBytes));
return (T)bFormatter.Deserialize(mStream);
}
catch( SerializationException sx )
{
System.Diagnostics.Debug.WriteLine(sx.Message);
return default(T);
}
finally
{
if( fs != null )
fs.Close();
}
}