Asp.net MVC3 има достъп до вътрешен клас от Razor View

Това не е дублиран въпрос. Вече търсих в SO, но имам нужда от друго нещо.

Има ли днес начин за достъп до вътрешен клас от Razor View, знам, че сборката трябва да е видима и все още ли е.

Никакви свойства или методи, декларирани във "вътрешен" клас, не са достъпни от Views по подразбиране. Трябва ми начин да отменя това.

Благодаря.


person User907863    schedule 24.07.2012    source източник
comment
поради каква причина искате да го направите? Търсите ли достъп до метод/свойство?   -  person Shyju    schedule 24.07.2012
comment
То е безразлично. Никакви свойства или методи, декларирани във вътрешен клас, не са достъпни от Views по подразбиране. Трябва ми начин да отменя това. Благодаря.   -  person User907863    schedule 24.07.2012
comment
Знам, че сборката трябва да е видима и все още ли е. Имате предвид атрибута InternalsVisibleTo? msdn.microsoft.com/en-us/library/   -  person VJAI    schedule 24.07.2012
comment
Имам същия проблем. Имам клас Constants, където се съхраняват всички глобални достъпни Constants и трябва да го препратя в изгледа на Razor, но не искам да правя класа Constants видим за други сборки. Някой да е решил това?   -  person JD Stuart    schedule 15.10.2012


Отговори (1)


В повечето случаи можете да промените класа от вътрешен на публичен. Можете да използвате InternalsVisibleTo, когато това не е не е желателно.

В случай на .Designer.cs файлове, които са автоматично генерирани с ресурси (.resx) файлове, можете да промените модификатора на достъпа на публичен, като отворите resx файла в изгледа на дизайнера:

Ако всичко друго се провали, трябва да можете да използвате отражение, за да получите това, от което се нуждаете. Вижте главния отговор тук за подробности относно че

Късмет!

person stepdo    schedule 07.04.2015
comment
За съжаление изглежда, че InternalsVisibleTo не помага с двигателя на Razor, тъй като генерира време за изпълнение на публични класове, от което моделът е изложен. Това означава, че нивото на достъпност ще се различава и ще генерира грешка при компилиране в Razor, независимо дали се използва InternalsVisible или не. - person Almund; 17.09.2015