LocalEnv
От: _NN_ www.nemerleweb.com
Дата: 21.11.12 08:39
Оценка:
В Nemerle есть GlobalEnv, но почему-то нет LocalEnv.

Как получить типы только из определенной сборки ?
Код:
def env = tb.Manager.CoreEnv.EnterIntoNamespace(["NS"]);


Дает типы из пространства имен во всех сборках.
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re: LocalEnv
От: VladD2 Российская Империя www.nemerle.org
Дата: 21.11.12 12:44
Оценка:
Здравствуйте, _NN_, Вы писали:

_NN>Как получить типы только из определенной сборки ?

_NN>Код:
_NN>
_NN>def env = tb.Manager.CoreEnv.EnterIntoNamespace(["NS"]);
_NN>


_NN>Дает типы из пространства имен во всех сборках.


Если только пробежаться по списку и отфильтровать вручную (из внешних сборок это будут наследники ExternalTypeInfo).
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: LocalEnv
От: _NN_ www.nemerleweb.com
Дата: 21.11.12 12:59
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Если только пробежаться по списку и отфильтровать вручную (из внешних сборок это будут наследники ExternalTypeInfo).


А как тогда создать объект только в моей сборке ?

tb.Manager.CoreEnv.Define жалуется что объект уже есть , потому что он в другой сборке
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[3]: LocalEnv
От: VladD2 Российская Империя www.nemerle.org
Дата: 21.11.12 16:17
Оценка:
Здравствуйте, _NN_, Вы писали:

_NN>А как тогда создать объект только в моей сборке ?


_NN>tb.Manager.CoreEnv.Define жалуется что объект уже есть , потому что он в другой сборке


Ну, дык этого действительно сделать нельзя. А зачем создавать дубликат?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: LocalEnv
От: _NN_ www.nemerleweb.com
Дата: 21.11.12 16:42
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, _NN_, Вы писали:


_NN>>А как тогда создать объект только в моей сборке ?


_NN>>tb.Manager.CoreEnv.Define жалуется что объект уже есть , потому что он в другой сборке


VD>Ну, дык этого действительно сделать нельзя. А зачем создавать дубликат?


Это не дубликат.
Хочется создать такой же тип но в своей сборке, даже если он объявлен в чужой.
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[5]: LocalEnv
От: VladD2 Российская Империя www.nemerle.org
Дата: 22.11.12 06:51
Оценка: :)
Здравствуйте, _NN_, Вы писали:

_NN>Это не дубликат.

_NN>Хочется создать такой же тип но в своей сборке, даже если он объявлен в чужой.

Какое-то мазохистское желание. Ничего кроме проблем ты от этого не получишь.

Создай типы в другом нэмспэйсе.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: LocalEnv
От: _NN_ www.nemerleweb.com
Дата: 22.11.12 09:08
Оценка: +1
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, _NN_, Вы писали:


_NN>>Это не дубликат.

_NN>>Хочется создать такой же тип но в своей сборке, даже если он объявлен в чужой.

VD>Какое-то мазохистское желание. Ничего кроме проблем ты от этого не получишь.


VD>Создай типы в другом нэмспэйсе.


С точки зрения рантайма ничего криминального в этом нет.
Например LinqBridge создает у себя System.Action, System.Func.
Но вот невозможность создать и получить типы в конкретной сборке это недоработка.
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[7]: LocalEnv
От: VladD2 Российская Империя www.nemerle.org
Дата: 22.11.12 09:54
Оценка:
Здравствуйте, _NN_, Вы писали:

_NN>С точки зрения рантайма ничего криминального в этом нет.

_NN>Например LinqBridge создает у себя System.Action, System.Func.
_NN>Но вот невозможность создать и получить типы в конкретной сборке это недоработка.

Согласен, что это недоработка. Надо делать алиасы как в шарпе. Но на практике это баловство. Как я уже сказал, просто создай другой неймстэйс.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.