Лучшей практикой было бы заставить JSON описать объект немного лучше:
"Unit":{
"UnitYear":"2018",
"UnitModel":"F250 Super Duty"
}
"Asset":{
"AssetYear":"2019",
"AssetModel":"Corvette Stingray"
}
Имея то, что у вас есть сейчас, вы можете добавить метод к каждому классу:
public bool IsValid()
{
return Model != null && Year.Date == DateTime.MinValue;
}
[ 118] А затем сделайте следующее для каждого класса, который вы хотите протестировать:
var stringUnit = "{\"UnitYear\":\"2018\",\"UnitModel\":\"F250 Super Duty\"}";
var assetUnit = "{\"AssetYear\":\"2019\",\"AssetModel\":\"Corvette Stingray\"}";
var unit = Newtonsoft.Json.JsonConvert.DeserializeObject<Asset>(stringUnit);
if (unit.IsValid())
{
Console.WriteLine(unit.AssetModel);
}
else
{
Console.WriteLine("Json can't convert this");
}
То, на что я был бы более склонен взглянуть, было бы примерно так:
Создать тип Enum и Unit Class:
public class Unit
{
public DateTime DateTime { get; set; }
public string Model { get; set; }
public UnitType UnitType { get; set; }
public bool IsValid()
{
return Model != null && DateTime == DateTime.MinValue || UnitType != UnitType.Unknown;
}
}
И затем создайте Enum для JSON Converter от Newtonsoft:
[JsonConverter(typeof(StringEnumConverter))]
public enum UnitType
{
Unknown = 0,
Asset,
Unit
}
И затем вы можете попытаться десериализовать все JSON точно так же: [ 1112]
string jsonString = "{\"Year\":\"2019\",\"Model\":\"Corvette Stingray\",\"UnitType\":\"Asset\"}";
var resultUnit = JsonConvert.DeserializeObject<Unit>(jsonString);
if (resultUnit.IsValid())
{
// This works, do the right thing. When the type matters access resultUnit.UnitType
}
else
{
//Throw an exception, really badly formed or an Unknown type
}
От сообщения в блоге Andrew Connell на предмете:
Присоединение отладчика к блокам GAC'd: "Почему мои точки останова не поражают?!?!" Когда-нибудь там? Меня также..., что ЛАВАШ, который является! Что продолжается? Ну, блоки находятся в GAC, и отладчик Visual Studio не видят отладочной информации (иначе: *.pdb). Если Вы не прошли проблему настроить хранилище символьной информации, куда все Ваши PDBs идут, необходимо будет поместить отладочную информацию в то же местоположение как блок. Прием находит папку, которая содержит Ваш DLL в GAC.
Папка c:\windows\assembly не является реальной папкой, это - виртуальная папка. Для получения до папки REAL сделайте следующее:
- Запустите» выполнение
- %systemroot %\assembly\gac [ВХОДЯТ]
Это откроет папку GAC. Теперь, введите по абсолютному адресу вокруг, пока Вы не находите папку, которая похожа на это (Вы, возможно, должны были бы подпрыгнуть одна папка и погружение в папку MSIL): [имя файла блока-.DLL расширение] [версия блока в формате> #.#.#.#] __ [маркер открытых ключей блока].
Когда Вы находите, что папка, откройте его, и Вы будете видеть свой блок. Скопируйте файл PDB в ту папку и затем присоедините отладчик для некоторой радости отладки!
Не помещайте свои блоки в GAC, помещайте их в каталог bin - затем можно использовать VS удаленный отладчик. Google, создающий.WSP файлы для распределения.
Это также имеет преимущество, что ее более легкое для копирования новых сборок на сервер после компиляции (постсоздают шаг), и также рекомендуемый способ увеличить безопасность.
Лучший способ (даже тот, подтвержденный Microsoft), состоит в том, чтобы иметь Windows 2003 Server с Sharepoint как Ваша локальная машина Разработки.
См. также эту тему.
Виртуальная машина является единственным способом пойти. Вы не хотите выделять целую машину dev (если у Вас нет отдельно оплачиваемых предметов), и разрабатывающий на Вашем рабочем сервере просто напрашивается на неприятности. Я предпочитаю VMware, но существуют другие та работа точно также.
При трассировке работ хорошо, поскольку нормальная отладка не является действительно опцией.
То, что еще я делаю, попытаться разработать всю логику (материал, который не является зависимым SharePoint) на просто обычном сайте asp.net, затем интегрируйте его в SharePoint после того, как это тестируется.
Надежда, которая имеет смысл.
Вы говорите о разработке веб-частей? Пользовательские страницы? Что-то еще?
Я рекомендую разработать на сервере Windows 2003 с Sharepoint. Это - стычка для отладки на удаленном сервере. Можно сделать это в виртуальной машине с VMware или Виртуальном ПК, если у Вас есть XP на Вашей рабочей станции.