Можно ли в .NET использовать отражение для получения всех ненаследуемых методов класса?

Из-за этой проблемы здесь , Я пытаюсь написать собственный JsonConverter, который обрабатывает случаи, когда вы подклассифицируете список или коллекцию, а затем добавляете к нему дополнительные свойства. Таким образом, можно было бы игнорировать все свойства базового класса и сериализовать только те, которые находятся в определенном классе. (Технически это не сработает, потому что если вы подклассифицируете этот подкласс, вы нарушите сериализацию, но это заставило меня задуматься ...)

Возможно ли это через отражение (ну, я знаю, что ответ «да», потому что Reflector делает именно это, но я не знаю, как) получить только те члены, которые определены в самом классе, а не те, которые были унаследованы? Например ...

public class MyBaseClass
{
    public string BaseProp1 { get; set; }
    public string BaseProp2 { get; set; }
}

public class MySubClass : MyBaseClass
{
    public string SubProp1 { get; set; }
    public string SubProp2 { get; set; }
}

В этом случае я хочу поразмышлять над MySubClass и получить только SubProp1 и SubProp2 , игнорируя BaseProp1 ] и BaseProp2 . Я хочу сделать резервную копию текущего веб-сайта перед развертыванием нового. Вот командная строка, которую я бы запустил: "C: \ ...

У меня есть построитель в Bamboo, который я создал, указывающий на исполняемый файл MSDeploy. Я хочу сделать резервную копию текущего веб-сайта перед развертыванием нового.

Вот командная строка, которую я бы запустил: "C: \ Program Files \ IIS \ Microsoft Web Deploy \ msdeploy.exe" -verb: sync -source: contentPath = "Веб-сайт по умолчанию \ MyService", computerName = "myserver" -dest: package = "MyService_backup_before_43.zip" - enableLink: AppPoolExtension

Итак, я установил новый компоновщик MSDeploy, чтобы он указывал на «C: \ Program Files \ IIS \ Microsoft Web Deploy \ msdeploy.exe» А затем я выбираю MSDeploy в качестве разработчика.

И аргумент такой: -verb:sync -source:contentPath="Default Web Site\MyService",computerName="myserver" -dest:package="MyService_backup_before_43.zip" -enableLink:AppPoolExtension

However MSDeploy keeps complaining that: Неизвестный аргумент '"-source: contentPath =" Default'. Все аргументы должны начинаться с "-".

Бамбук возится с аргументацией, очевидно, чтобы попытаться быть умным. Однако мне нужно, чтобы двойные кавычки (") оставались там, где они есть.

Я пробовал все возможные комбинации одинарных и двойных кавычек, то есть перед всеми аргументами, только перед теми, которые есть пробелы или только те, в которых есть кавычки.

Кто-нибудь знает, как заставить это работать, пожалуйста?

9
задан Bernard 3 May 2011 в 21:49
поделиться