C # Создать сборку и установить версию - во время выполнения - PullRequest
2 голосов
/ 29 ноября 2011

Я делаю юнит-тесты и хочу проверить это:

public static string GetVersion(Assembly assembly)
{
    return assembly.GetName().Version.ToString();
}

Вопрос в заголовке.

Возможно ли это вообще?

Ответы [ 2 ]

1 голос
/ 29 ноября 2011

Я думаю, что с помощью размышлений вы можете изменить ответ Собственности, но он не будет записан в сборку, в которой он находится.

PropertyInfo nameProperty = typeof (Version).GetProperty ("Version");
FieldInfo versionField = nameProperty.GetBackingField ();
versionField.SetValue (assemby.GetName().Version, <Version you want>);
0 голосов
/ 30 ноября 2011

Это звучит как работа для фиктивного объекта . Создайте фальшивый тип, который «высмеивает» тип сборки, и используйте этот фальшивый тип для тестирования. Намного проще, чем пытаться заставить вселенную подчиниться вашей воле, просто чтобы проверить, что ваш код обрабатывает непонятные угловые случаи.

Разведчик, есть несколько библиотек для создания макетов. Вот один из них: http://msdn.microsoft.com/en-us/magazine/cc163904.aspx

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