मेरे पास दृश्य स्टूडियो के साथ एक छोटा सा मुद्दा है। मैं एक विधि है कि एक CustomExceptionदेखें विस्तार खिड़की का विस्तार नहीं करता संग्रह गुण
फेंकता है, तो मैं कोड है कि आज़माएं/कैच में इस प्रणाली को बुलाती है मैं डिबगर
में अपवाद विवरण देख सकते हैं अगर मैं कोशिश हटाने लपेट/कैच मैं देख सकता हूँ "त्रुटियों" संपत्ति गणना = 4 है, लेकिन मैं त्रुटियों को नहीं देख सकता ...
इस उम्मीद है या यह एक बग है?
मैं vs2015 उद्यम और नेट का उपयोग कर रहा 4.5.2
आप आसानी से यह पुन: पेश कर सकते हैं:
1) इस
using System;
using System.Collections.Generic;
using System.Linq;
namespace ClassLibrary1
{
public static class Class1
{
public static void DoSomethingThatThrowsException()
{
throw new MyException(Enumerable.Range(1, 4).Select(e => new MyError() { Message = "error " + e.ToString() }).ToList());
}
}
public class MyException : Exception
{
public IEnumerable<MyError> errors { get; set; }
public MyException(IEnumerable<MyError> theErrors) { errors = theErrors; }
}
public class MyError { public string Message { get; set; } }
}
2 के साथ एक वर्ग पुस्तकालय बनाने के लिए) इस के साथ एक सांत्वना अनुप्रयोग बनाएँ:
using ClassLibrary1;
namespace ConsoleApplicationException
{
class Program
{
static void Main(string[] args)
{
try
{
Class1.DoSomethingThatThrowsException();
}
catch (MyException ex)
{
//Here I can expand ex.errors;
}
//Here I can see that Count=4 but I cannot see the errors...
Class1.DoSomethingThatThrowsException();
}
}
}
पुनश्च
मैं "DebuggerDisplay" गुण का उपयोग कर अपनी समस्या का समाधान कर सकते हैं, मैं तो बस यही कारण है कि दृश्य स्टूडियो के रूप में की उम्मीद काम नहीं करता है सोच रहा हूँ एड
[DebuggerDisplay("FullDetails = {FullDetails}")]
public class MyException : Exception
{
public IEnumerable<MyError> errors { get; set; }
public MyException(IEnumerable<MyError> theErrors) { errors = theErrors; }
public string FullDetails { get { return string.Join(",", errors.Select(e => e.Message)); } }
}
अद्यतन
अगर मैं सरणी के लिए मेरी सूची बदलने के लिए, मैं एक ही समस्या है, लेकिन मैं पहले रिकॉर्ड देख सकते हैं अगर मैं इसे बदलने के शब्दकोश में !!!
हो सकता है कि 'MyError' वर्ग (के रूप में चिह्नित) नहीं है serializable: यह आप LINQ क्वेरी की गणना करने से पहले उसे फेंक की अनुमति देगा? –
@UweKeim मुझे एक ही समस्या है, भले ही मैं इसे Serializable –