Re: Namespace при генерации сборки средствами Reflection.Emi
От: TK Лес кывт.рф
Дата: 15.08.03 07:45
Оценка: 14 (2)
Здравствуйте, vdovin, Вы писали:

V>Я динамически генерю сборку с помощью объектов из System.Reflection.Emit

V>Проблема в том, что я не могу найти, как сделать так, чтобы сгенеренные типы в этой сборке входили в необходимое мне пространство имен. У меня получается, что все типы принадлежат неименованному пространству имен.
V>Кто-нибудь знает ответ?

Пространоства имен — это изобретение языков высокого уровня.
На самом деле их (пространств) нет. Есть только полное имя класса. Например: System.String
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re[7]: Namespace при генерации сборки средствами Reflection.
От: desperado_gmbh http://www.livejournal.com/users/tolstopuz
Дата: 20.08.03 07:30
Оценка: :))
Здравствуйте, VladD2, Вы писали:

VD>Никаких прерок не нужно. То о чем я говорю описано в специшикации.


Такой чушью MSDN и многие книги забиты под завязку.
Автор: VladD2
Дата: 08.05.03
Namespace при генерации сборки средствами Reflection.Emit
От: vdovin  
Дата: 15.08.03 07:43
Оценка:
Я динамически генерю сборку с помощью объектов из System.Reflection.Emit
Проблема в том, что я не могу найти, как сделать так, чтобы сгенеренные типы в этой сборке входили в необходимое мне пространство имен. У меня получается, что все типы принадлежат неименованному пространству имен.
Кто-нибудь знает ответ?
Re[2]: Namespace при генерации сборки средствами Reflection.
От: vdovin  
Дата: 15.08.03 07:54
Оценка:
Здравствуйте, TK, Вы писали:

TK>Пространоства имен — это изобретение языков высокого уровня.

TK>На самом деле их (пространств) нет. Есть только полное имя класса. Например: System.String

то есть имя моего класса при генерации надо задавать так:
имя_namespace_который_я хочу.имя_типа
я правильно понял?
Re[2]: Namespace при генерации сборки средствами Reflection.
От: VladD2 Российская Империя www.nemerle.org
Дата: 17.08.03 13:25
Оценка:
Здравствуйте, TK, Вы писали:

TK>Пространоства имен — это изобретение языков высокого уровня.

TK>На самом деле их (пространств) нет. Есть только полное имя класса. Например: System.String

Тогда поведай нам, что означает System.Type.Namespace? Ну, и за одно поведай про соотвествующее поле в таблице описания типов.
... << RSDN@Home 1.1 beta 1 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: Namespace при генерации сборки средствами Reflection.
От: TK Лес кывт.рф
Дата: 18.08.03 08:17
Оценка:
Hello, "VladD2"
>
> TK>Пространоства имен — это изобретение языков высокого уровня.
> TK>На самом деле их (пространств) нет. Есть только полное имя класса. Например: System.String
>
> Тогда поведай нам, что означает System.Type.Namespace? Ну, и за одно поведай про соотвествующее поле в таблице описания типов.

Можно считать, что это просто для удобства.

Namespaces are not metadata items—they do not have an associated metadata table, and they cannot be referenced by tokens. Namespaces also have no direct bearing on assemblies.


т.е. вполне можно считать, что как таковых namespace'ов нет. Есть только полные имена классов.

Simply put, namespaces are the common prefixes of the full names of classes. The full name of a class is a dotted name; the last simple name it contains is the class name, and the rest is the namespace of the class.

Posted via RSDN NNTP Server 1.6
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re[4]: Namespace при генерации сборки средствами Reflection.
От: severn Россия  
Дата: 18.08.03 08:26
Оценка:
Здравствуйте, TK, Вы писали:


TK>Можно считать, что это просто для удобства.


TK>

TK>Namespaces are not metadata items—they do not have an associated metadata table, and they cannot be referenced by tokens. Namespaces also have no direct bearing on assemblies.


TK>т.е. вполне можно считать, что как таковых namespace'ов нет. Есть только полные имена классов.


TK>

TK>Simply put, namespaces are the common prefixes of the full names of classes. The full name of a class is a dotted name; the last simple name it contains is the class name, and the rest is the namespace of the class.


Откуда цитаты, если не секрет?
Re[5]: Namespace при генерации сборки средствами Reflection.
От: TK Лес кывт.рф
Дата: 18.08.03 08:29
Оценка:
Hello, "severn"

>

> Откуда цитаты, если не секрет?

Не секрет.
Inside Microsoft .NET IL Assembler. (так-же входит в MELL Microsoft Visual Studio .NET Collection)
Posted via RSDN NNTP Server 1.6
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re[4]: Namespace при генерации сборки средствами Reflection.
От: Lloyd Россия  
Дата: 18.08.03 14:27
Оценка:
Здравствуйте, TK, Вы писали:


TK>Можно считать, что это просто для удобства.


Скорее не для удобства, а для компактности хранения метаданных.
Re[4]: Namespace при генерации сборки средствами Reflection.
От: VladD2 Российская Империя www.nemerle.org
Дата: 18.08.03 15:12
Оценка:
Здравствуйте, TK, Вы писали:

TK>Можно считать, что это просто для удобства.


TK>

TK>Namespaces are not metadata items—they do not have an associated metadata table, and they cannot be referenced by tokens. Namespaces also have no direct bearing on assemblies.


Откуда ты взял этот бред?

Ссылка на namespace содержится в таблицах метаданных TypeRef и TypeDef. Поля так и называются Namespace.

TK>т.е. вполне можно считать, что как таковых namespace'ов нет. Есть только полные имена классов.


TK>

TK>Simply put, namespaces are the common prefixes of the full names of classes. The full name of a class is a dotted name; the last simple name it contains is the class name, and the rest is the namespace of the class.


Это откуда? Возможно ребята писавшие Emit и схалявили, но заявление твое от этого правильнее не становится. В общем, не читайте советских газит перед сном.
... << RSDN@Home 1.1 beta 1 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: Namespace при генерации сборки средствами Reflection.
От: VladD2 Российская Империя www.nemerle.org
Дата: 18.08.03 15:12
Оценка:
Здравствуйте, TK, Вы писали:

TK>Не секрет.

TK>Inside Microsoft .NET IL Assembler. (так-же входит в MELL Microsoft Visual Studio .NET Collection)

Гы. Загляни в Appendix B и посмотри описание талиц TypeRef и TypeDef.
... << RSDN@Home 1.1 beta 1 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[5]: Namespace при генерации сборки средствами Reflection.
От: mihailik Украина  
Дата: 19.08.03 10:22
Оценка:
TK>>

TK>>Namespaces are not metadata items—they do not have an associated metadata table, and they cannot be referenced by tokens. Namespaces also have no direct bearing on assemblies.


VD>Откуда ты взял этот бред?


VD>Ссылка на namespace содержится в таблицах метаданных TypeRef и TypeDef. Поля так и называются Namespace.


Ты не согласен с выделеным?

Насколько я помню, "ссылка на namespace" — это всего-лишь индекс строки в таблице строк, а не токен Namespace.

P.S. Для проверки можно сделать в IL два типа, "A.B"."C" и "A"."B.C". И попробовать, есть ли между ними взаимная совместимость при Reference. Если есть — на Namespace можно окончательно забить, это просто часть FullName.
... << RSDN@Home 1.1 beta 1 >>
Re[6]: Namespace при генерации сборки средствами Reflection.
От: VladD2 Российская Империя www.nemerle.org
Дата: 19.08.03 17:18
Оценка:
Здравствуйте, mihailik, Вы писали:

TK>>>

TK>>>Namespaces are not metadata items—they do not have an associated metadata table, and they cannot be referenced by tokens. Namespaces also have no direct bearing on assemblies.


VD>>Ссылка на namespace содержится в таблицах метаданных TypeRef и TypeDef. Поля так и называются Namespace.


M>Ты не согласен с выделеным?


Да в общем-то согласен. namespace — это действительно просто строки. Я не согласен с завялением "Пространоства имен — это изобретение языков высокого уровня.". И оно из вышесказанного не вытекает.

M>Насколько я помню, "ссылка на namespace" — это всего-лишь индекс строки в таблице строк, а не токен Namespace.


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

M>P.S. Для проверки можно сделать в IL два типа, "A.B"."C" и "A"."B.C". И попробовать, есть ли между ними взаимная совместимость при Reference. Если есть — на Namespace можно окончательно забить, это просто часть FullName.


Никаких прерок не нужно. То о чем я говорю описано в специшикации.
... << RSDN@Home 1.1 beta 1 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[8]: Namespace при генерации сборки средствами Reflection.
От: VladD2 Российская Империя www.nemerle.org
Дата: 20.08.03 14:28
Оценка:
Здравствуйте, desperado_gmbh, Вы писали:

VD>>Никаких проверок не нужно. То о чем я говорю описано в специшикации.


_>Такой чушью MSDN и многие книги забиты под завязку.
Автор: VladD2
Дата: 08.05.03


И к чему ты эту ссылку дал? Я так понимаю нравится выдергивать из контекста...
... << RSDN@Home 1.1 beta 1 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.