Изолированное устройство хранения данных, прежде всего, используется для приложений, распределенных с помощью ClickOnce, и выполняется в безопасной песочнице. Основной путь решен для Вас, и Вы не будете в состоянии, выводят его в Вашем коде. Путь будет чем-то как "\LocalSettings\ApplicationData\IsolatedStorage\ejwnwe.302\kfiwemqi.owx\url.asdaiojwejoieajae....", не весь настолько дружественный. Ваше пространство памяти также ограничено.
На практике терминология не имеет большого значения - я не могу помните, когда в последний раз мне приходилось беспокоиться об этом кроме , когда я пытался об этом написать. IsGenericType имеет довольно полезную небольшую таблицу.
Повторюсь, это почти не имеет значения при повседневном использовании.
Я вообще за знание правильной терминологии - особенно для таких вещей, как «пройти по ссылке "и т. д. - но в данном случае это действительно, действительно не очень часто. Я бы хотел убедить вас не беспокоиться об этом :)
Из MSDN :
Универсальный тип или метод закрывается, если создаваемые типы были заменены на все его параметры типа, включая все параметры типа всех включающих типов . Вы можете создать экземпляр универсального типа, только если он закрыт.
Таким образом, это работает как List
is closed :
var list = Activator.CreateInstance(typeof(List<int>));
Но это вызывает исключение при время выполнения, потому что List <>
открыт :
var list = Activator.CreateInstance(typeof(List<>));
↑
Я в основном использовал открытые дженерики (в основном неустановленные дженерики) в сопоставлениях внедрения зависимостей. Например, что-то вроде
Bind<IRepository<>>()
.To<BasicRepository<>>()
Затем, когда мой конструктор объекта содержит:
public SomethingController(IRepository<Something>) { ... }
Мой механизм внедрения зависимостей автоматически создаст экземпляр BasicRepository