Можно ли добавить тип, ссылающийся на сборку в памяти?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Можно ли добавить тип, ссылающийся на сборку в памяти?

Сообщение Anonymous »

Следующий код создает тип в памяти, находит его сборку, а затем пытается добавить другой тип, ссылающийся на первый:
Add-Type -TypeDefinition 'namespace MyNamespace { public class c {}}'

$assembly =
$([System.AppDomain]::CurrentDomain.
GetAssemblies().
GetTypes() |
? {$_.Namespace -eq 'MyNamespace' } |
% Assembly |
Select-Object -Unique -First 1 )

Add-Type -TypeDefinition 'namespace MyNamespace {public class d : c {}}' `
-ReferencedAssemblies $assembly

Попытка завершается ошибкой
Add-Type: C:\repro.ps1:12
Line |
12 | Add-Type -TypeDefinition 'namespace MyNamespace {public class d : c { …
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| The value cannot be an empty string. (Parameter 'path')

что предполагает, что Add-Type ищет путь, который, вероятно, не существует, поскольку сборка существует только в памяти.
Можно ли добавить тип, который ссылается на тип, хранящийся только в памяти?

Что работает

Следующий подход работает, но требует существования сборок в файловой системе:
Remove-Item .\c.dll,.\d.dll -ErrorAction SilentlyContinue
Add-Type `
-TypeDefinition 'namespace MyNamespace { public class c {}}' `
-OutputAssembly .\c.dll
Add-Type -Path .\c.dll
[MyNamespace.c]::new()

Add-Type -TypeDefinition 'namespace MyNamespace {public class d : c {}}' `
-ReferencedAssemblies .\c.dll `
-OutputAssembly .\d.dll

Add-Type -Path .\d.dll
[MyNamespace.d]::new()


Подробнее здесь: https://stackoverflow.com/questions/791 ... y-assembly
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Можно ли добавить тип, ссылающийся на сборку в памяти?
    Anonymous » » в форуме C#
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Можно ли добавить тип, ссылающийся на сборку в памяти?
    Anonymous » » в форуме C#
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Можно ли добавить тип, ссылающийся на сборку в памяти?
    Anonymous » » в форуме C#
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Можно ли добавить тип, ссылающийся на сборку в памяти?
    Anonymous » » в форуме C#
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Можно ли добавить тип, ссылающийся на сборку в памяти?
    Anonymous » » в форуме C#
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»