Почему бы не использовать словарь?
using System.Collections.Generic;
private Dictionary<bool, string> abc(string a, string b) {
//...
Dictionary<bool, string> returnVal = new new Dictionary<bool, string>()
{
{"success", false},
{"responseText", "Input-Values not valid"},
};
return returnVal;
}
А затем, чтобы получить доступ к возвращаемому значению, вы должны сделать: returnVal["success"]
Эта статья объясняет, как получить исключение HRESULT, таким образом, можно определить ошибочную причину.
Это было решением, которое я предложил.
private void RobustMoveFile( System.IO.DirectoryInfo destinationDirectory, System.IO.FileInfo sourceFile, Boolean retryMove )
{
try
{
string DestinationFile = Path.Combine( destinationDirectory.FullName, sourceFile.Name );
if ( File.Exists( DestinationFile ) )
sourceFile.Replace( DestinationFile, DestinationFile + "Back", true );
else
{
sourceFile.CopyTo( DestinationFile, true );
sourceFile.Delete();
}
}
catch ( System.IO.IOException IOEx )
{
int HResult = System.Runtime.InteropServices.Marshal.GetHRForException( IOEx );
const int SharingViolation = 32;
if ( ( HResult & 0xFFFF ) == SharingViolation && retryMove )
RobustMoveFile( destinationDirectory, sourceFile, false );
throw;
}
}
Ищите явные коды ошибок, что можно иметь дело с, например:
выгода (Исключение u) {если (((SocketException) u).ErrorCode == 10035)...
Смотрите здесь: http://msdn.microsoft.com/en-us/library/ms681391 (По сравнению с 85) .aspx
для кодов ошибок, например:
ERROR_SHARING_VIOLATION - 32 - 0x20
ERROR_ACCESS_DENIED = 5 - 0x5
ERROR_FILE_NOT_FOUND - 2 - 0x2