►
From YouTube: .NET Core Design Reviews: TryGetRawMetatadata
Description
We'll talk about adding an API to request the raw metadata of an Assembly.
CoreCLR: TryGetRawMetatadata
https://github.com/dotnet/corefx/issues/2768
A
A
C
So
the
context
is
scripting
scripting
at
runtime,
extending
your
applications,
providing
way
how
to
run
snippets
of
code
against
runtime
matata,
because
you
know
on
client
machines.
You
don't
have
contrast,
you
don't
have
SDKs,
you
can
you
just
have
runtime
method,
and
so
this
is
what
we
are
going
to
deliver
for.
Update
1
and
DF.
Ap
is
that
you
can
run
that
we
can
use
to
run
subscripts
vbscript
and
they
need
metal
to
compile
guns
and
encore
s'il
are.
There
is
no
very
currently
to
access
runtime
metal?
C
A
C
B
This
does
not
just
affect
scripting.
This
actually
has
a
it
had
a
pretty
big
effect
on
the
wrong
API
surface.
For
the
same
reason,
when
creating
a
consolation,
it's
very
common
for
people
to
do
things
like
type
of
that
assembly,
like
I,
would
like
to
reference
whatever
tank
this
assembly
is
defined
in
and
in
the
past,
under
the
hood,
it
was
reflecting
into
the
location
property
to
find
the
item
to
reference,
and
it
was
impactful
enough
that
we
pulled
it
out
of
Roslin
at
the
last
minute.
We
couldn't
even
delete
the
API.
B
We
just
had
to
obsolete
it,
because
we
felt
that
was
going
to
have
too
much
of
an
impact,
and
we
would
love
to
be
able
to
bring
this
API,
that
you
can
give
us
a
type
and
we
can
make
it
very
easy
to
create
compilations
and
code,
but
we
until
we
have,
but
the
whole
reason
we
really
need
to
type
is:
we've
got
to
crack
that
metadata
and
we
can't
crack
that
metadata.
Essentially
without
somebody
I
like
this
and.
C
This
has
announced
your
effect
on
scripting
as
well,
so
the
API
journal
entry.
It's
not
like
that.
If
you
had
my
real
complex
system
like
a
mess,
but
it
really
is
it
obviously,
because
you
have
two
companions
contracts,
that's
given,
but
for
very
simple
tools
that
you
know,
people
just
write
down
lines
of
code
to
you
know
do
something
easy
right:
they
need
a
little
bit
of
math
outta
here
they
don't
care
about
whether
it's
contract
or
run
time.
C
C
A
A
C
So
we
were
thinking
about
you
know,
would
it
be
possible
because
they're
flexion
is
exposing
exactly
not
exactly
but
roughly
the
data
we
want?
The
problem
is,
as
I
mentioned
in
the
proposal
director.
Multiple
problems,
you
know
not
all
data
is
exposed,
the
style,
how
it
exposes
essentially
of
Jamal,
you
know
versus
reader
and
consuming
that
object
model
and
transforming
in
tourism.
C
Jamal
gets
quite
complex,
yep,
hello,
it
EDSA.
Oh,
we
had
to
visit
on
top
of
all
we
had
the
reflection
already
has,
which
is
huge
compared
to
Roberto
metairie,
if
so,
and
that
Travis
Lee,
floating
pipes
and
stuff
like
that
that
I
listed
so
I
concluded
it.
Yes,
it
would
be,
you
know,
sort
of
possible
to
be
very
painful
or
slow,
and
it
wouldn't
allow
us
to
have
high
fidelity
reading
right
people
to
heal
differently.
Then,
when
you
compare
against
contrast,
which
is
not
desirable,
the.
B
Long
term,
it's
also
just
maintenance
costs
for
us.
Every
time
we
evolve
our
simple
API
at
least
a
little
bit
doesn't
have
to
go
and
like
update
reflection
as
opposed
to
metadata
reading.
This
is
the
proposed
date
metadata
like
this
is
just
how
we
import
libraries
and
if
we
have
it
available,
it
would
just
it
would
collapse
or
no
significantly,
essentially,.
C
The
the
high
level
bit
here
is
that
the
format
or
the
data
that
should
be
the
currency
or
talking
about
my
other-
should
be
0
or
other
for
both
defined
formats
that
are
sterilized
in
Google
you're,
not
an
object
model.
That
reflection
is
great
for
certain
things,
sure
if
it's
not
grateful
being
cleared
by
a
compiler
right.
So
that's
the
important
distinction.
I
kind
of
compare,
compare
these
two
approaches
to
Exeter
xmldocument
versus
xmlreader.
C
B
C
B
Khussa
modifiers
particular
like
we
are
taking
the
biggest
fix
for
taking
update.
One
is
our
support
for
custom
modifiers,
the
compiler
yep,
and
it
would
be
doing
all
that
work
and
losing
it.
If
we
had
to
go
over
is
ocean,
they
would
be
just
be
yet
another
random
gap
that
you've
got
to
deal
with.
Know
me
by
that.
A
A
E
Well,
just
path
bcp,
so
yeah
there
was
that
as
less
relevant
today
as
we
put
file
system
API
everywhere,
but
it
has
to
do
a
lot
with
an
effort
to
first
of
all,
if
you
think
about
native,
it's
basically
dawn
at
the
level
of
reflection,
you
don't
really
want
to
be
sort
of
at
the
level
of
like
getting
from
a
type
to
its
type
info.
Don't
want
to
be
having
some
tie-in
to
like
where
it
was
loaded
from
disk
or
whatever.
That's
like
a
responsibility
that
we
sort
of
have
at
the
hosting
level.
E
So
we
have
this
like
system
runtime
loader
that,
like
tnx
plugs
into
it,
decides
where
things
are
loaded
from
it
can
compile
things
in
memory
also,
in
some
cases
and
like
it's.
Basically,
we
don't
want
to
have
this.
We
don't
want
to
have
this
at
the
level
of
I
can
have
any
type
I
shouldn't,
be.
You
know,
figuring
out
location
on
this,
it's
sort
of
like
a
separation
of
concerns
there
and
then,
of
course,
like
on
don
and
native.
E
You
know
there
are
no
locations
to
speak
of,
and
so,
and
so
reflection
is
a
core
concept
to
any
sort
of
garnett
environment,
but
sort
of
files
on
disk
is
something
that
we
want
to
be
like.
I
would
say,
sort
of
tied
more
to
the
particular.
You
know
runtime
environment,
which
not
necessarily
anywhere
you
have
type
inflows.
Would
you
have
assembly
locations
kind
of
it.
B
Simply
step
apps,
you
have
to
make
sense
as
we
move
forward.
We
have
in
memory
assemblies
like
you
said
we
have
thought
David,
we
have
tnx.
We
have
all
these
things
like
it's.
It's
a
it's
a
contract
that
we
can't
fulfill
on
all
invitations
and
because
it
cortex
did
a
good
job
of
divorcing
those
concepts
and
saying
that
simply
some
applications
and
and
debility.
B
A
A
A
Saying
again
of
the
stuff
is
already
missing:
everybody
up,
I
think
the
location
for
election
to
your
part,
identical
just
makes
no
sense
because
approach
everything
together,
then
you
have
beets,
you
know
metadata,
convey,
I,
don't
know
what
was
the
name
for
that?
What
something
back
in
names
fate
it
wasn't
called
Nate
spit,
but
is
it
like
scare
scope?
A
There
was
no,
they
use
to
actually
emulate
assemblies
and
it
seems,
like
location,
wouldn't
fly
with
that
at
all,
because
it
will
all
point
the
same
thing
and
then
the
question
is:
what
would
you
expect
a
dataview
to
do
so?
I
mean
it
would
so
that
it
would
be
that
it
would
have
this
API.
They
give
an
assemble
if
you
can
get
the
flop
and
then,
let's
say
I
mean
gonna
native
has
different
editor
that
it's
not
act
might
something
else.
So
the
expectation
is
that
the
consumer
kinda
has
to
parse
that
blog
yeah.
C
And
they
decide
what
reader
they
won't
lose
and
if,
if
there
is
no
oil
or
the
block
is
not
understood
by
a
real,
then
that's
tough
luck,
the
safety
aracles
false
or
the
blog
contains
computer
consume.
It
won't
be
able
to
consume
them.
It
needs
to
report
the
air
up.
So
in
scripting
you
would
say
we
would
report
an
hour.
While
you
cannot
add
a
reference
to
this
thing.
Sorry
yeah,
that
would
be
fine.
I
mean
you
know
it's
okay,
it
would
be
in
ninety
percent
sinner.
It
will
work,
even
so.
C
People
probably
not
even
hit
that
yep
and
so
right
now,
for
the
scenarios
that
currently
consumers
have
access
to
on
project
and
scripting
is
not
relevant
anyway,
because
they
are
in
cochin,
so
I
don't
think
that's
gonna
be
an
issue.
There
are
some
considerations
around
enc
and
dynamic.
A
reflection
I
met
Cogan
how
it's
gonna
work
with
this,
and
we
concluded
that
for
now
it's
gonna
be
it's
gonna
return.
The
initial
you
know
image
that
was
used
to
and
symbol
on
it,
not
the
latest
snapshot
after
enc,
so
antsy
won't
work.
C
You
know
with
scripts
in
the
sense
that
if
I
enc
type
that
the
script
is
accessing,
it
will
still
see
the
old
version.
I
said
we
have
the
same
problem,
good
reflection
general
already,
and
we
would
like
to
address
that.
But
we
can
certainly
others
that
using
an
app
different
API.
But
that's
four
pounds
of
discussion
and
it's
gonna
be
a
bigger
feature.
Extensive.
A
C
C
E
E
The
only
the
only
thing
that
I
can
see
it
might
be
a
bit
of
a
problem
for
a
rosin
as
a
portable
entity.
Is
that
you
have
this
concept
of
this
ugly
load
context
is
like
we,
we
don't
have
we
don't?
We
don't
implement
some
little
context
on
understand
or
do
we
implement
have
to
me?
Not
korsal
are
so
right,
so
you
had
to
be
slightly
less
than
portable.
You
have
to
either
even
need.
B
E
On
course,
shell
are
basically
right.
Is
that
a
portable
contract?
Is
that
a
con
job?
That's
currently
I
mean
you
can
imagine
it
going
to
other,
but
it's
one
of
the
things
that
we
decided
was
really
course
healer
only
because
it's
envisioned
as
something
for
like
the
sort
of
the
level
of
lexi,
c
ya,
DNX,
already
doing
a
lot
of
different
things
in
order
to
give
a
a
there
the
hose
w
the
South
model.
So
there
have
very
different
things.
E
They
have
to
do
to
kind
of
get
an
app
to
run
on
desktop
or
get
a
nap
already
in
this
world
of
like
understanding
the
differences
between
these
platforms
of
the
level
of
sort
of
loading
things.
So
we
don't
actually
map
this
concept.
Back
is
one
of
the
few
contracts.
This
is
not
intended
really
like.
Let's
say,
like
you
use
it
all
over
your
class
libraries
like
it's
something
that
sort
of
happens
on
that
sort
of
wires
up
the
loading.
E
C
C
D
B
Be
different:
if
we
I
guess
you
what
you're
saying
is
we
have
a
I'm
guessing,
you
would
prefer
we
go
back
to
essentially
having
that
old
API
we
had
were
like
get
a
metadata
reference
for
an
assembly
value,
know
so
I'm
in
Rob's.
That
I
was
imagined,
you're
gonna
say
like
have
the
API
revive
the
API
Rossum
movies,
say
basically
assembly
to
metadata
reference
internally,
we
know.
Oh,
we
already
have
a
corsa
varsham
and
a
compiler
where
we
know
oh
I'm.
B
On
course,
you
are
used
like
chimneys,
a
diary
of
them
so
that
will
produce
I
mean
I,
agree
that
that
is
a
path
forward
for
us.
If
we
have
like
this
encore
clr-
and
we
just
use
that
location
on
desktop,
but
it
will
be
subtle,
semantic
differences,
correct
and
is
returned
and
I
just
want
to
make
sure
that
we're
comfortable
with
those
cells
and.
A
B
Differences
I
mean,
of
course,
in
our
desktop,
is
ok,
I,
don't
think
that
we,
the
difference
the
difference.
Is
that
way
it's
how
we
load
them
in
a
bit,
because
we
will
work
what
we're
really
what
we're
trying
to
get
from
this
is.
We
want
to
load
a
metadata
reference.
Okay,
/
gives
metadata
yep
so
in
one
case
we're
going
to
be
using
a
bike
pointer,
that's
given
to
us
by
at
the
core
clr
okay,
you
guys
manage
a
lifetime
of
that
is
going
to
be
as
long
as
a
core
solara
stopped,
but
the.
B
B
D
E
As
a
result,
we
had
I
guess
the
only
question,
but
it
seems
like
the
only
other.
Interesting
differences
is
at
first.
You
know
some
of
the
potential
here
for
improving
situations
like
NC
or
like
or
cases
where
there
are
no
location,
but
there
is
metadata,
and
you
had
two
big
prey,
but
while
there
may
be
but
I
don't
know
because
there
are
some
lifetime
questions
of
me.
Sana
said
these
would
be
only
in
the
static
cases
anyways
for
this
API.
But
if
it
weren't
like
there's
some
potential
for
improvement
from
this
API.
E
But
if
we
put
it
in
it
in
the
in
a
place,
it
can
only
call
it
cor
cor.
Some
of
those
same
improvements
can't
necessarily
be
potentially
like
I.
Don't
you
can
imagine
you
know
being
able
to
get
metadata
in
cases
where
there
is
no
file
on
disk?
And
you
don't?
You
know
if
you're
only
can
use
location
on
that
something?
You
might
have
like
it's
unclear
to
me.
If
there's
actually
going
to
be
a
big
delta,
because
we're
only
going
to
use
this
like
for
the
things
that
we
have
so.
D
D
C
Is
of
course,
you're
late,
yeah,
but
I
think
that's
it's
okay,
I
mean
for
now
at
least
because
you
cannot
do
that
today,
anyways
and
there
is
no
take
back,
and
you
know
people
if
I
used
to
it
not
working
right
right.
The
same
thing
here,
if
you
reflection
amid
something
you
won't
be
able
to
pray
right,
it's
still
fine
I
mean
it's
a
trimet,
the
price.
To
you
best
effort.
There
is
Matata.
If
there
is
no
matter
that
we
can
access
well,
then
we
report
our
upstream
and
each
other.
C
E
Like
just
in
the
general
thing,
this
is
try,
and
sometimes
there
are
cases
that
are
it's
not
impossible
to
provide
and
the
scripting
will
fail
and
then
Rosen
it's
not
in
corrective
on
some
platforms
like
it
fails
in
less
cases
like
it's
just
by
its
nature.
It's
a
best
effort
to
get
metadata.
So
if
some
platforms
can
make
a
better
effort
and
a
little.
E
Will
surface
to
you
on
that
platform
like
it's?
Not
it
does
cause
a
change
maker,
but
it
seems
like
30
defined.
As
you
know,
we're
gonna
ask
the
runtime
for
a
best
effort
to
give
us
metadata
and
if
we
don't
get
it,
it's
an
error
and,
like
you
know
they
mean,
like
we
know
like
like
for
the
common
cases
that,
like
you
know
for
the
ninety
percent
case,
is
going
to
work
equally.
A
A
E
C
E
C
E
About
lifetime
issues
too
and
stuff
like
that
right
lighting,
so
we're
not
returning
that,
but
from
the
API
shape.
You
know
it's
like
the
other
ones,
pretty
obvious,
like
you're,
not
getting
metadata
if
there's
no
file
on
disk,
definitely
not
because
it
gives
you
a
location
in
the
desktop
case,
rut
there's
so
in
this
case
you
know,
there's
in
very
similar
cases
where
you're
not
getting
a
location
you're
going
to
get
all
your
life.
You
know
it's
less.
C
E
A
C
C
I
think
it'd
be
defined
in
document
that
the
lifetime
of
the
point,
the
point
is
I
longest
assemblies
I.
Then
it's
up
to
do
a
host
to
keep
Trustin
alive
while
reading
the
data,
but
if
so
basic
about
the
resin
would
do,
is
you
know
package
it
into
some
object?
That
represents
the
method
in
our
portal
that
will
have
a
reference
to
the
assembly
and
then
the
pointer
right,
so
that
object
o
p
ill.
Believing.
C
E
E
C
D
Not
be
reckoned,
it
should
not
be
described,
but
you
know.
Are
there
any
versioning
considerations?
I
mean
I'm,
assuming
that
the
idea
is
that
the
metadata
formats
well
defined,
and
if
people
are
going
to
be
able
to
parse
files
themselves,
they
should
be
able
to
parse
the
I
derail.
You
know
the
x
star
that
comes
out
of
this,
but
for
different
platforms
are
there
considerations?
We're,
like
you
were
mentioning
metadata
formats,
can
be
yes
different
corners,
so.
C
A
B
B
With
that
magic
number
of
helpless
here
we
did.
We
change
the
number
enough
that
we
okay,
so
that
little
bit,
if
so,
that
was
a
change
in
and
we're
just.
Basically,
if
we
were
based
in
some
ways
committing
than
if
we
do
have
another
meta
data
change
going
for
that,
we
will
have
to
either
be
extensible
or
know.
C
E
D
E
We
really
only
have
one
documented
format
at
this
time.
Then
donĂt
native
has
another
format,
but
it's
not.
He
knows
it's
not
something
that
you
can
get
really
figure
out
right
now
and
not
intended.
You
know
a
lot
of
thought
we
have
to
go
into
sort
of,
but
it
certainly
we
have.
It
certainly
imaginable
that
just
like
them,
we
won't
have
AG
my
metadata,
but
we
might
have
something
that
is
equally
know
sort
of
fits
a
scenario
that
is
talking
about.
It
can
be
read
by
something
like
system.
E
Reflects
your
metadata
might
be
able
to
provide
a
view
over
four
different
formats,
but
regardless
we
get
up
other
blobs
potentially,
but
in
practice
like
right
now,
there's
like
I,
don't
think
we
would
give
out
the
dot
and
native
metadata
just
yet
because
it's
you
know
it's
not
something.
That's
sort
of.
D
C
A
E
A
A
E
A
E
D
E
Away
I
mean
hi,
I,
think
I
agree
with
you,
but
I
do
think
you
know
it
might
be
a
bit
sort
of
like
you
know.
You
could
imagine
that
as
things
evolved
because
you
know
there's
a
lot
of
discussion
about
sort
of
like
the
future
scenarios
and
lifetimes
and
stuff
and
I
know
I'm
hand
waving
here,
but
you
could
imagine
that,
like
as
the
things
actually
materialize,
we
have
me
have
more
scenarios
and
more
platforms
and
like.
E
You
know
just
a
static
blah
bite.
Star
is
not
the
thing
but
sitting
there,
always
that
returns
false
and
there's
this
other
thing.
It's
in
reflection,
where's
it's
over
the
loader,
it's
a
little
more,
it's
a
little
more
tied
to
some
kind
of
kind
of
like
getting
putting
it
on
this
item,
I'm
certain
kind
of
sort
of
separate
kind
of
things.
E
A
few
people
deal
with
you
know
the
loading
but,
like
you
know,
the
assembly
is
kind
of
like
a
prominent
thing,
but
so
maybe
I'd
be
worried
about
this
roof
a
real
estate
there
and
also,
even
though,
like
it's
not
wrong
to
always
return
false.
I
just
wonder
if
they
end
up
looking
slightly
odd
but
I
don't
yet.
C
A
That
I
mean
that's
the
leader.
Some
other
means,
that's
true.
I
would
not
would
not
like
to
see
it
on
assembly
by
default
for
sure
right
now,
what
I
was
saying
is
I,
wouldn't
literally
physically
put
it
on
the
assembly
pipe.
I
would
put
in
an
extension
of
the
new
separate
nation
is
at
least
but
the
question.
A
Another
option
is
that
I
mean
I
mean
if
you
put
it
in
the
existing
assembly.
The
only
don't
set
the
best
sub
is
that.
Well,
if
you
have
the
api
there,
then
we
we
have
to
touch
test
I.
We
can
put
her
in
a
secondary
assembly.
We
can
literally
supported
on
this
off
your
day
by
just
returning
false
right,
so
Dave
guy
is
always
guaranteed
to
be
there
because
we
can
ship
it
auto
fan.
So
we
put
in
the
secondary
country.
We
have
that
ability.
My
only
concern
is
like
I.
D
A
Or
take
Nate
said
well,
tetona
native
you
can
get
assembly
object,
you
control
the
picture
of
all
you
get
metadata
for
those,
but
you
don't
load
assemblies
on
the
fly
like
it
is
somewhat
I
thought.
Oh
man
that
sense
right!
Oh
you
have
to
look.
You
don't
do
that
now!
Well
sure,
but
hey
that's
a
grainy
new
API
didn't
do
anything
today.
Right.
E
It's
like,
if
you
put
something
in
a
reflection
contract
you
should
be
like
it
should
be.
You
know
something
that
you're
sort
of
like
you
want
it
to
be.
Like
a
reflection
feature
like
you
know
what
I
mean
like
versus
sort
of
like
right
now,
you
know
this
really
is
like
I
mean,
maybe
it's
just
a
question
of
namespace,
but
this
really
is
kind
of
a
like
a
sort
of
a
concern
that
you
know
it's
pretty
it's
pretty
uncommon.
D
E
C
Think
it
makes
sense
a
thing,
maybe
another
serration
yeah,
so
we
are
with
other
people,
debugger
and
diagnostics.
They
need
system
and
sometimes
they
ready
to
find
symbols
or
the
deal.
And
so
it's
what
one
might
imagine
lapi
that
this
try
get
the
image
right
if
it's
available
iop
headers
or
something
some
more
more
biscuits
just
the
raw
metal
per
section
right.
C
But
in
some
scenarios,
where
you
actually
want
to
find
the
pdso
she
do
assembly,
you
need
to
end
up
PA
image,
because
there
is
a
debug
very
creditable
to
look
up
right,
and
so
there
might
be
some
other
stuff
in
the
p
library
sources
or
what
not
write
that
note
for
our
seniors.
For
some
interesting
heirs,
they
might
be
interesting.
So
I
can
imagine
more
api's
that
that
give
you
access
to
food.
A
C
C
D
C
E
The
other
issue
that
they
need,
there's
also
the
issue
of,
but
then
that
does
tie
formats
into
it,
but
it
also
the
issue
of
being
able
to
get
tokens
from.
So
if
you
wanted
to
correlate
like
you
wanted
to
correlate
objects
in
reflection
to
the
format,
so
we
also
have
another
sending
issue.
I
think
I
link
to
it
in
the
air
which
was
talking
about.
Can
we
and.
E
Living
together
and
then
you
could
also
imagine
that
slightly
resetting
a
bit
of
what
we
were
talking
about
earlier
about
not
having
the
format,
but
I
think
the
direction
on
the
other
one
was
like
we
would
have
again.
You
know,
try
to
get
a
token,
but
it's
or
try
to
get
you
know
our
VA
or
so
there
could
be
you'd.
Imagine
the
entire
thing
being
like
I,
don't
know
system
that
reflection
that.
D
E
E
C
What's
the
car
asking
you
know,
are
they
a
PR?
Are
the
FBI's
met
ramp
and
by
DeRozan,
like
simple
presence
just
little
every
other
week?
We
get
this
question
and
yes
well,
you
can
take
the
name.
I
tried,
find
maybe
can
subdue
the
generate,
start
and
arise
and
would
look
if
you
have
some
helpers
internally
connects
post,
but
perhaps
those
come
into.
E
A
D
E
D
D
D
A
A
D
A
E
That
makes
sense
to
put
in
the
core
killer
and
then
I
don't
think
it
would
be
the
end
of
the
world
if
it
stayed
there,
even
if
it
ended
up
being
two
places
to
get
it
eventually
like,
because
the
runtime
loader
is
very
specific
contract.
You
know
it's
not
like
it's
not
like
it's
gay.
It's
not
like.
There's
a
bunch
of
risk
of
any
of
that.
A
E
E
A
E
D
A
Right
then,
thanks
for
the
folks
online,
there
are
no
questions.
Yeah
we
lose
later
thanks,
guys.