Полное противоположное, соглашение о присвоении имен ясно определяет интерфейс.
, Например, если Вы имеете:
public class Dog : IPet, IMammal
{
....
Только от чтения его, я могу безопасно предположить, что IPet и IMammal являются, вероятно, интерфейсами.
CLR.NET допускает наследование единого класса. Так, если у меня есть базовый класс.. Я могу только наследовать один класс от него. Позволяет изменяют интерфейс IPet на базовый класс.. наш пример теперь становится
public class Dog : Pet, IMammal
{
....
, я наследовался Любимому классу и реализую интерфейс IMammal.
, Если мы сделали это, что Вы предлагаете и удалили букву "I", у нас есть это:
public class Dog : Pet, Mammal
{
....
, Какой является классом, которому я наследовался? Который является интерфейсом, который я реализую? Это получает запутывающее право? (К вашему сведению.. Вы, как предполагается, помещаете базовый класс всегда сначала, таким образом, Вы могли оспорить ту точку зрения..., но если Вы требуете удалять букву I из добавления префикса имен интерфейса, я сомневаюсь, что Вы применяете ту практику также)
, Поскольку Вы видите, что соглашение о присвоении имен легко говорит мне много о моем объекте без меня имеющий необходимость заняться расследованиями далее. Я могу легко видеть то, что я наследовал по сравнению с тем, что я реализую.
Как выглядит класс ErrorMessage?
Дон ' t используйте поле StatusMessage для машиночитаемых данных - см. http://tools.ietf.org/html/rfc2616#section-6.1.1 .
Также может быть нормально, что " теперь в теле http вместо фактических данных JSON отображается текст «Не удалось загрузить источник для: http: // localhost: 7000 / bla ..» - буквальная строка - это данные JSON, если Я правильно помню.
У меня была точно такая же проблема. Мне это пригодилось:
http://zamd.net/2008/07/08/error-handling-with-webhttpbinding-for-ajaxjson/
На самом деле, у меня это работает.
Вот мой класс ErrorMessage:
[DataContract]
public class ErrorMessage
{
public ErrorMessage(Exception error)
{
Message = error.Message;
StackTrace = error.StackTrace;
Exception = error.GetType().Name;
}
[DataMember(Name="stacktrace")]
public string StackTrace { get; set; }
[DataMember(Name = "message")]
public string Message { get; set; }
[DataMember(Name = "exception-name")]
public string Exception { get; set; }
}
В сочетании с последним фрагментом выше:
fault = Message.CreateMessage(version, "", new ErrorMessage(error), new DataContractJsonSerializer(typeof(ErrorMessage)));
var wbf = new WebBodyFormatMessageProperty(WebContentFormat.Json);
fault.Properties.Add(WebBodyFormatMessageProperty.Name, wbf);
var response = WebOperationContext.Current.OutgoingResponse;
response.ContentType = "application/json";
response.StatusCode = HttpStatusCode.InternalServerError;
Это дает мне правильные ошибки как json. Спасибо. :)