►
From YouTube: .NET Design Review: Nullable Reflection APIs + JSON
Description
00:00:00 - Approved: Allow X509Chain to replace the root trust list for a single call https://github.com/dotnet/corefx/issues/16364#issuecomment-503226830
00:07:08 - Needs Work: Expose top-level nullability information from reflection https://github.com/dotnet/corefx/issues/38087#issuecomment-503265497
01:50:04 - Approved: Support for custom converters and OnXXX callbacks https://github.com/dotnet/corefx/issues/36639#issuecomment-503265607
A
C
C
Things
like
revocation,
are
only
checked
if
the
chain
was
trusted
by
the
system.
This
just
prevents
a
certain
amount
of
network
waste
when
we
weren't
going
to
trust
it.
So
why
bother
check
there
are
times
when
people
don't
want
to
don't
want
to
or
can't
alter
system
trust,
but
they
want
to
know
if
the
chain
meets
a
set
of
rules
that
they
have.
Sometimes
it's
more
restrictive.
C
Sometimes
it's
in
addition
to,
and
so
then
this
adds
a
collection
of
certificates
that
we
will
use
instead
of
the
system
trust
list
to
determine
if
the
chain
is
trustworthy
right
now.
The
trust
vote
only
has
two
values
in
the
Ino
system,
which
is
doing
the
thing
we
were
already
doing,
which
then
it
will
throw
if
you
put
anything
in
the
custom,
trust
store,
because
your
misconfigured
and
custom
trust,
which
are
custom
root,
trust,
which
means
we
will
ignore
anything
in
the
custom,
trust
or
that's
not
self
signed,
do
a
little
ignore
it.
A
C
B
C
B
C
A
A
So
basically
what
it
is
is
there
were
some
customers
particular
NBC
nef
that
want
to
reflect
over
basically
our
code
at
runtime
and
spend
for
the
customer
code
at
one
time
to
determine
whether
something
is
considered
malleable
and
their
scenarios
are
pretty
mundane
in
the
sense
that
they
make
sense,
given
what
the
customer
would
like
to
expect
to
so,
for
example,
EF.
Is
it
easier
to
experience
of
a
server
V
F,
so
f
basically
uses
customer
data
tribes
to
effectively
create
a
database
on
behalf
of
the
of
the
user?
A
That
say
this
field
is
required
of
this
field
is
not
required,
but
determine
what
the
underlying
sequel
schema
is
available,
column
or
not,
and
so
now
that
they
have
multiple
annotations
in
c-sharp,
customers
will
likely
expect
that
they
can
put
a
question
mark
and
then
means
yeah,
it's
my
first
name
or
middle
and
property's
nullable.
Then
they
would
expect
the
database
schema
to
be
malleable
as
well.
A
A
I
marked
my
my
model
type
is
not
inaudible,
but
when
I
actually
get
it
back
from
the
controller
I,
you
know,
I
find
middle
name
to
be
known,
for
it's,
not
okay
and
so
again.
The
work
around
here
is
they
would
have
customizable
seconds
they
can
put
on
those
properties,
but
it
seems
largely
redundant
given
that
tea
shop
has
now
our
first
class
teacher
to
do
that.
A
So
basically,
the
idea
is
said:
okay,
how
would
people
do
that?
And
so
today
the
problem
is
I.
Don't
have
source
code
in
here,
but
the
way
the
compiler
emits
effectively.
The
malleability
information
is
not
exactly
straightforward,
because
there's
a
byte
array
involved
because
you
can
have
constructed
generic
types
of
you
know
I
liveable
off
strings,
for
example,
but
those
are
scenarios
that
neither
MVC
nor
EF
care
about.
They
only
care
about
the
total
ability.
Information
like
it's
the
whole
property.
A
Now
the
Polo
is
the
whole
method,
input
inaudible
and
it's
a
pretty
common
pattern
that
I've
seen
for
other
people
asking
for
as
well,
and
so
the
ideas
imaginary
would
expose
it
information
from
the
reflection,
API,
and
so
the
idea
would
be.
You
can
basically
ask
the
top-level
entry
is
like
the
parameter
or
the
method,
return,
type
or
the
event
property
or
field.
Whether
the
thing
is
not
able
or
not,
and
generally
speaking,
there's
three
states.
A
There
is
the
current
set
of
the
world,
in
which
case
you
know,
nothing
is
recorded,
so
the
state
is
unknown,
Timmy
no
kami
not
now,
and
then
there
is
the
new
stage
where,
when
you
actually
put
a
question
mark
where
you
compiled
with
inaudible
turned
on
for
c-sharp,
if
you
don't
put
a
question
mark,
it's
it's
markers
not
now.
If
you
did
put
a
question
mark,
it's
considered,
maybe
now,
and
so
this
would
be
correct.
D
Sorry,
how
does
this
interact
with
the
variations
that
can
come
from
me?
The
new
attributes,
like
I,
can
have
a
non
nullable
string.
That
is
then
attributed
as
either
allows
null,
or
you
know,
disallowed
no
like
for
a
ref
parameter
or
something
said
dictate
whether
it
can
mean
all
on
the
way
in
or
the
way
out,
yeah.
E
C
A
C
E
C
A
E
C
B
C
C
The
end
of
the
day,
once
we
take
all
the
things
that
say,
oh
if
this
generic
is
a
reference
type
that
maybe
Nolan,
if
it's
a
value
type
it
in
wouldn't
be
null
and
like
we'd,
have
to
call
that
in
like
it
would
make
sense
to
pump
it
into
the
API.
But
if
you're
talking
about
the
whatever
Yann
calls
the
types
that
have
where
you
say
angle
bracket
and
don't
fill
it
in.
Like
you
can't
we
don't
know.
A
Because
it
depends
on
what
you
want
to
do,
what
if
it,
for
example,
let's
say
you
look
at
the
database
schema
right
now,
you
could
say
so
today.
Ef
has
some
sort
of
default
handling
for
types,
but
they
say
certain
types
we
special
handle
and
we
basically
say:
there's
a
default
probability
based
on
heuristics,
right,
strings
I
think
is
one
of
those
and
other
things.
A
It
would
say
if
the
state
is
unknown,
you
just
use
whatever
default
policy
you
have
and
there
maybe
not
or
not,
now,
depending
on
the
type
and
then
you
say
well,
but
if
I
know
the
null
ability
say
then
I
will
just
on
whatever
the
nobility
state
is
I.
Don't
care
about
the
heuristic
anymore,
using
Express,
the
intent.
C
A
B
A
A
A
What's
what
happened
in
the
conversation
I
think
yeah
and
hope
we
can
speak
to
that
as
well.
It's
like
this
I
think
there's
some
constraints
about
basically
baking
c-sharp
isms.
If
you
will
into
the
API
I'm
somewhat
sympathetic
to
that,
but
at
the
same
time
I
don't
think
of
it
as
this
you're
a
prism
as
much
as
I.
Think
of
it
about
think
about.
This
is
a
new
convention
that
the
compiler
like
by
not
only
the
char
compiler
on
earth,
but
I've
sharp
is
planning
on
honoring
them
as
well,
so
I.
Think
of
them.
A
As
the
generic
don't
add,
metadata
feature
I.
Don't
it's
not
a
runtime
aware
feature,
but
it's
a
it's
a
you
know
shared
convention.
If
you
will
know
we
could
put
them
elsewhere,
I
just
don't
know
where
l2
it
would
be
right.
I
mean
how
many
board
up
extension
methods,
which
has
other
problems,
because
now,
when
you
have
extension,
methods
is
to
decide
which
types
they
go
on
and
then
the
other
question
really
is
well
I.
Make
them
virtual
partially
because
of
the
way
attributes
are
currently
represented
in
the
collection,
which
is
not
that
great.
A
So
if
you
first
know
but
have
a
reflection,
water
implement
all
the
metadata.
You
can
answer
these
questions
much
much
more
cheaply
than
if
you
do
admire
a
long
reflection,
api's,
and
so
the
idea
was
yeah
depending
on
how
the
model
is
implemented.
You
can
you
can
have
a
more
efficient
representation
for
that
I.
Think
the
bigger
problem
for
these
API
is
which
is
kind
of
Woodyard.
That
is,
the
current
design.
A
A
It's
tempting
to
put
this
on
tight,
but
we
can't
pull
it
on
type.
We
have
to
effectively
give
you
another
way
to
traverse
the
generic
like
composition
and
then
fish,
then
data
out,
which
I
think
would
be
a
new
top-level.
Try
you
basically
like
say
you
know
you
would
start
on
a
particular
designator
like
a
feeling
for
property
in
phone.
You
would
basically
say
give
me
your
custom
attributes
and
then,
as
you
are
walking,
if
your
unfolding,
the
types
basically
know
where
we're
in
the
array
we
are,
we
can
give
you
that
information.
A
I
think
compiler
servers
will
be
bad
because
they
that
namespace
is
meant
to
be
only
used
by
the
compiler.
Those
are
not
meant
by
use
of
the
compiler
I'd
also
mention
people
that,
like
EF
they're,
just
want
to
consume
what
to
compile
it
did
so
they
are
like
they're
like
reflection,
API,
it's
but
I,
think
they
I.
Think
component
service
would
be
bad
because
now
you're
importing
in
in
space
where
80%
of
them,
you
should
never
look
at
it.
A
C
E
H
C
A
Like,
for
example,
default
info
or
sorry
for
metadata
because
it
happens
represented
in
metadata,
but
slots
are
not
part
of
the
type
system.
Realistically,
it's
just
like
it's
just
did
it's
just
it
like
from
a
user
standpoint,
is
the
most
convenient
way
to
acquire
that
information,
I,
think
I,
don't
think
compiler
service.
What
people
would
expect
a
metadata?
Maybe
if
you,
if
you
use
but
I,
think
metadata
is
also
fairly
low-level,
so
I'm
not
sure.
That's
necessarily
the
right
one
using
but
yeah
yeah.
E
E
C
D
D
C
Could
consume
that
yeah
as
a
private
thing?
Don't
even
worry
about
API
shape,
it's
whatever
they
want
it
to
be,
and
then
come
net
five
or
the
support
is
stable.
More
of
the
framework
has
no
ability
and
attributes.
The
compiler
is
stable
with
what
it
generates
and
we
can
revisit
the
API
shape
based
on
the
leads
and
the
availability
at
the
time.
So
I
know
that
Steve's,
the
steve
hoarder,
is
not
in
the
room
right
now.
G
H
A
E
Also,
you
know,
I
used
touched
on
that
no
deflection,
API
stood
that
exist
today
to
access
country.
Customary
are
not
exactly.
You
know,
super
fast
now,
I
think
that's
something
that
should
be
fixed
except
like,
if
you
say,
okay,
you
know
like
we
have
like
these
ideas,
but
everybody
needs
to
implement
their
own
would
make
it
actually
fast
I.
Never
it
what's
the
point
right
there.
E
C
All
also
just
shoot
off
a
message
to
Steve
harder
offline
and
just
see,
if
maybe
we
have
another
consumer
of
a
proposed
decoder
ring
just
to
get
more
coverage
on
I.
Don't
think
we
want
to
free
up
kind
of
I
will
assert
okay,
okay,
mr.
Schulman
I,
like
the
we
do
not
have
time
for
more
features
in
the
serializer
in
300.
Okay,
this
is
not
ready.
We
do
not
want
this
for
three
M
sure
I
will.
D
Also
add-
and
this
might
be,
the
pessimist
in
me:
I
get
a
little
nervous
about
components,
making
runtime
decisions
based
on
these
null
ability,
annotations,
which,
while
we've
tried
to
make
correct
a
I'm,
100%
sure
we're
gonna
bugs
in
the
end,
oceans
that
we
have,
and
there
are
places
where
things
have
been
fudged
a
little
bit
like
we're.
You
know.
Well,
we
we
don't
think
it's
gonna
return
null,
but
at
its
virtual
who
knows,
and
so
making
runtime
decisions,
especially
in
a
serializer,
seems
dangerous.
E
A
How
do
we
square
our
statement
that
you
want
to
be
able
to
churn
the
annotations
in
the
framework
over
the
next
version
until
500
public
posts
5-volt?
Even
they
do
not
get
everything
in
Oh,
giving
them
Babel
add
a
lot
more
annotations
in
the
final
time
frame,
probably
need
more
time
to
make
them
as
well.
A
So
most
of
the
time
you
think
of
these
annotations
as
compiled
time
breaks
right,
but
as
soon
as
you
have
systems
that
reason
about
this
metadata
at
runtime,
then
even
if
it's
mostly
customer
data
code,
I
don't
think
you
can
always.
You
know
describe
that
boundary
well
enough
and
suddenly
we
have
to
hit
there
breaking
changes
that
affect
runtime
state
right
and
that
that
might
be
a
good
cost
to
say.
Maybe
we
shouldn't
do
any
features
until
we
have
sufficient
confidence
that
the
notations
are
correct.
A
A
A
A
So
hunter
biology
almost
do
people
care
about
the
generalized
feature
here,
which
is
like
exposing
dynamic
and
couple
names
as
well
as
anybody
think
that's
important,
but
it's
kind
of
the
same
problem.
If
you
think
about
how
the
customer
views
are
encoded,
you
guys
have
to
block
the
signature
and
find
the
index
in
the
array
and
that's
kind
of
the
same
pattern
on
there
for
another
Bowl
as
it
is
for
dynamic,
as
it
is
for
couple
names,
I
think.
H
It's
one
of
those
things
where
we
should
be
exposing
it
somewhere
because
there's
other
languages
that
need
it
not
just
even
Microsoft
languages,
but
there's
community
owned
languages
where
they
want
to
be
able
to
interact
with
the
features
and
there's
link
expressions
and
things
like
that
where
you
want
to
be
able
to
use
the
better
names
to
when
you're,
creating
your
expressions
and
still
have
the
map
up.
Yada-Yada
I
think
it's
for
something
like
it
may
be.
C
sharp,
but
C
sharp,
so
big
that
it
just
becomes
like
the
de
facto
standard,
and
you.
C
A
G
H
A
But
sure
that
one
yes
but
like
I
mean
I
talked
with
Jared
about
it
like
they
think
that
once
they
have
it,
they
have
it.
They
we're
not
going
to
touch
it,
because
it's
almost
impossible
to
reason
about
that.
Once
your
like.
Okay,
if
the
feature
is
basically
so
that
you
can
have
different
heuristics
and
how
you
apply
the
compression
thing,
but
but
the
actual
mechanics
I
read
it
wouldn't
change
it
would
just
it
would
just
shuffle
the
attributes
around
and
how
it's
being
emitted
so
I
think
that's
probably
not
the
biggest
concern.
A
You
have
it's
more
interesting
to
see
like
what
other
attributes
you
will
add
in
the
future
that
could
influence
that
decision
making
and
that
one
I
can
totally
see
that
we
add
more
attributes,
because
then
you
already
run
into
cases
in
the
review
where,
where
all
they
do,
is
we
have
one
expressive
enough?
So
that's
the
question:
how
much
do
we
care
all
right?
So
then
Steve
just
joined
so
I
think
they
made
done
with
this
one.
But
I
will
just
move
this
out
of
three
Oh:
remove
the
blocking
partner
because
can
unblock
them
differently.
A
A
G
Okay,
so
this
is
I
think,
third
time
through
this
and
you
can
kind
of
read
some
the
notes
from
previous
cycle,
but
but
basically
we
met
offline
as
well
and
I.
Think
the
design
is
pretty
close.
Some
of
the
naming
you
know
was
up
in
the
air,
so
there
is
a
summary
naming
done.
This
is
the
last
review,
but
in
general
on
the
API
is
the
same,
except
the
read
and
write
the
read
method
now
is
now
try
read
and
the
write
is
not
try
right.
G
C
I
G
No
I
guess
that's
the
same.
Well,
I
thought
you're,
referring
to
the
run
time
on
the
design
time
attributed
her
did
it.
This
basically
allows
you
to
create
a
custom
attribute
and
add
some
properties
to
your
custom
attribute
and
then
pass
those
on
to
the
converter.
That's
all
it
really
does
yeah.
We
could
move
this
off
and
put
it
somewhere
else,
but
I
mean
the
converter.
Attribute
itself
needs
to
be
able
to
do
this
in
some
way.
Oh
okay,.
C
Last
time,
potentially
making
this
method
public
and
sort
of
protected
did
we
decide
against
having
we
agree
you
convert
around?
That
is
what
was
the
reasoning.
The
reason
for
that
is
no
one
aside
from
the
Jason
serializer
itself
can
call
it
like
if
you
were,
if
you
were
creating,
if
he
were
subclass
in
Jason
converter
attribute.
How
do
you
test
him.
C
D
C
A
B
C
G
C
Or
even
if,
even
if
I'm,
not
creating
my
own
serializer,
that
say
that
I'm
I
mean
the
serializer
has
virtual
methods
on
it.
Right,
like
the
serializer,
has
accessibility
points.
If
I
fix,
if
I
use
one
of
those
extensibility
points
to
extend
the
serializer,
I
need
to
be
able
to
call
the
same
api
s
and
discovery
wiser
itself.
What
a
call
yeah.
C
L
C
H
C
C
H
A
A
And
it
doesn't
bias
anything
to
make
it
protected
like
as
far
as
we're
concerned,
it's
a
it's
a
public
API
and
they
behave
to
reason
about
it's
an
extension
point
and
what
they
make
it
protected
or
public
does
not
limit
our
like
support
cost
in
any
meaningful
fashion.
It
just
makes
it
slightly
harder
to
be
able
to
actually
test
their
stuff.
You.
H
H
M
F
H
H
A
G
G
Okay,
so
I'm
Jason,
convertor
I,
think
I
added
the
private
are
tainted
from
Hecht
internal
to
private
internal.
So
we
don't
expect
anybody
to
derive
from
this
directly
right
now.
Do
you
mean
probably
otherwise
it's
the
same.
A
C
B
G
For
speed-
oh
sorry,
yeah
I
just
put
this
here
to
make
sure
that
we
realize
there's.
J
H
A
A
A
G
Iii
was
a
typo
from
last
time.
All
of
the
samples
had
it
derived
from
that
oh
I
see
yeah,
we
were,
we
were
playing
with
the
API,
it's
offline
discussion
and
I
never
changed
it
back,
but
no,
it
is
the
DOS
drive
from
that.
The
idea
of
having
a
common
base
class
Basin
converter
is
that
there
will
be
more
than
one
type
of
converter
here,
there's
to
concur
or
not
to
two
different
kinds
of
converters:
the
factory
and
then
the
of
T
converters,
but
I.
G
G
That's
that
was
some
feedback
actually
offline
feedback
and
further
thinking
on
this
is
that
it
did
toggle
from
create
get
now
back
to
create,
because
the
intent
is
that
the
framework
will
automatically
cache
for
you
if
you've
just
bought.
Yet
it
kind
of
seems
like
that.
The
type
itself
this
would
happen.
I
mean
I'm
flying
both
ways,
but
the
argument
was
brought
up.
That
create
is
a
little
more
correct
and
the
terms
of
you
know
how
the
framework
called
automatically
cache
I.
H
A
A
G
G
G
M
G
A
There
would
be
all
much
worse
in
my
opinion,
but
I
mean
the
average
Joe
gets
what
a
factory
does
yeah
I,
don't
think
the
average
understands
the
term
binder.
Like
sure
gate
is
like
mean
you
could
I
mean
unless
you
do
a
globalization
expert
I.
Don't
think
that
means
anything
to
you
and
then
I'm
always
gonna
sounds
more
like
it
handles
dynamic,
which
I
don't
think
is
either
the
right
term,
so
yeah
I
think
I
mean
in
fact
I'm
exactly
as
I
get.
Why
did
you
know
it's
it's
supposed
to
create
instances
right
and.
A
I
mean
the
hierarchy
is
a
bit
on
the
funky
side
with
Jason
convertor,
but
I
also
don't
have
a
better
alternative,
because
I
think
for
the
people
that
just
register
them
calling
those
guys
converters
makes
perfect
sense,
yeah
and
the
people
that
are
extending
them
here.
For
them
it's
a
bit
funky
because
the
converters
were
actually
converter,
but
I
also
don't
have
any
other
naming
suggestions.
That
would
be
better.
H
A
Yeah
but
but
but
see,
that's
the
thing
right,
I
think
so
the
it's
not
about
internal
versus
public.
It's
more
like
on
the
Jason,
solid,
Asian
options.
You
have
a
bunch
of
converters
that
you
register
right,
so
the
user,
the
registers,
the
converter,
they
don't
care
what
these
guys
do
to
implement
themselves,
but
never
want
of
you
like
whether
it's
a
factory
alone
effect
to
its
implementation.
Detail
of
that
converter
right.
H
But
so
I
know
so
what
I'm
saying
was
the
other
proposal
was
basically,
you
have
registers
to
murder
and
register
factory.
If
you
register
converter
gets
to
add
it
direct
to
the
list.
If
you
register
factory,
then
internally,
you
can
have
a
converter
that
does
the
inheritance
chain
and
wraps
the
factory.
That
way
you
don't
have
to
expose
to
the
user.
No
I
get
that
what
I'm
saying.
A
Is
that
your
bits
of
the
implementation
there's
disagreement
on
like
who
you're
shielding
from
this
right,
because
they
think
they
do
well?
The
current
design
is
that
the
person
that
just
does
the
registration
of
the
converters-
they
don't
have
to
know
whether
the
converter
itself
is,
is
effectively
or
not
right.
They
just
register
the
converter,
I.
H
Mean
you
probably
shouldn't
be
registering
the
converter
that
you
don't
little
boy
like
you
probably
don't
want
to
register
some
arbitrary
converter
as
like
an
apple
or
library
author.
You
probably
either
want
the
serialization
library
to
do
it
through
the
attributes
or
you
want
to
be
doing
it
through
some
well
described
mechanism
that
you've
created
your
own.
You
probably
shouldn't
be
taking
a
random
thing
from
external,
but.
A
K
A
About
how
things
compose
right,
I'd
say:
I'm
the
I'm,
the
edger
library
and
let's
say
the
storage
depends
on
some
other
thing,
with
Ezra
fubar
right
and
as
your
fubar
has
converters
for
their
types
as
a
storage
has
converter
for
their
types.
Well,
the
the
layer
that
I
actually
see
lenses
both
has
to
register
both
of
them
right.
So
now
I
mean
yeah.
You
would
not
like
Ren
dojo
would
not
create
another
Grendel
thing
and
then
just
fill
it
in
there.
A
But
logically
speaking
like
if
you're
the
author
of
the
time-
and
you
were
the
author
of
the
civilization
Hank,
that
makes
perfect
sense
so
me
to
register
your
converter
for
your
time
or
your
dependencies
yeah,
because
otherwise
like
otherwise.
That
means
anybody
who
serialize,
as
always,
has
to
author
everything,
which
is
defeating
the
point
right
now.
I.
G
Think
a
good
scenario,
for
that
would
be
some
users,
a
lot
of
users
like
the
Jason
net
semantics
of
trying
to
guess
when
we're
deserializing
things
like
hints
and
Long's
and
decimals.
Basically,
they
wanted
to
be
either
deserialized
as
the
number
or
a
string
the
day.
We
don't
do
that.
We
only
support
a
number
and
Jason,
so
I
assume
pretty
quickly.
Somebody's
going
to
create
a
bunch
of
converters
are
one
big
converter.
That
knows
how
to
do
that,
and
it'll
probably
share
right
people
hopefully
use
it
quite
often.
A
A
Only
thing
I'm
trying
to
get
the
sector
that,
given
that
this
is
the
only
extension
point
behalf
yeah,
but
is
the
person
somewhat
like
we're?
Also
there's
nothing
they
can
do
like.
There's
no
fallback,
for
you
know,
just
need
what
the
meter
yourself
and
with
the
instance,
because
they
need
the
only
way
you
can
actually
get
to
the
instances
by
basically
arriving
from
these
things,
you
already
get
the
t's
or.
A
A
G
H
Well,
I
mean
you
say
that,
but
once
you
get
in
ml,
you're
gonna
have
like
the
ladies,
like
matrices,
which
are
potentially
large
trucks,
even
even
in
the
common
case
of
just
like
graphics.
You
have
a
matrix
4
by
4,
which
is
16,
floats
sword
and
a
struct
and
you're
not
going
to
want
to
incur
the
cost
of
the
copy.
Every
time
I
mean
cutting
the
only
the
only
thing
that
can
really
fix.
That
is
exposure
right
and
right.
That
takes
a
rat
team
and
then.
A
A
H
Is
a
by
ref
that
has
the
in
attribute
and
an
additional
read-only
attribute,
and
then
out
is
a
by
ref
that
has
the
out
attribute
by
any
of
the
attributes
new
or
they
know
that
what
the
remain
only
one
is
new.
But
it's
one
of
the
magic
attributes
that
the
compiler
emits
if
it
can't
find
it
in
the
first
work.
So.
H
F
H
H
A
C
K
A
C
J
A
C
You
also
aren't
there
other.
There
are
other
costs
involved
here,
like
if
I
made
this
in
T
in
the
matrix
case.
This
was
you
know
in
of
a
matrix
of
sixteen
floats.
The
implementation
either
needs
to
copy
all
of
those.
Two
local
registers
whatever
or
every
access
to
every
field
is
gonna,
be
a
an
indirection.
That's
on
optimizable
I
mean
you
have
that
for
a
regular
class
anyway.
C
Okay,
every
access
to
the
fields
effectively
an
indirection
crew
of
this
footer
right,
but
we're
talking
about
Struck's
we're
talking
about
a
trade-off
between
us,
we're
just
having
it
on
the
stack
versus
adding
all
those
interactions.
Okay,
that's
right,
but
if
it's
only
serializing
properties,
I,
don't
think
you
can
take
graphic
property
unless
the
property
was
itself
right.
Returning,
so
once
we
say
it's
not
doing
fields,
then
this
is
mostly
yeah.
C
A
H
G
Is
possible
to
add
another
type
of
converter
to
deal
with
this
I
mean
the
framework
could
just
switch
on
the
different
types
of
converters
and
I
and
I.
Think
like
I
said
earlier,
we
would
have
I
want
to
create
a
different
type
of
converter,
things
like
collections
and
poco
types
just
basically
expose
of
whatever
the
framework
does
in
the
future.
Not
for
this
release,
so
I
mean
if
we
think
this
is
fine
for
v1
and
and
but
there's
an
optimization,
and
we
don't
want
to
add
the
in
modifier
because
it
causes
other
problems
right.
C
I
think
your
I
think
your
trade-off
is
buying
just
at
it
in
the
future.
You
know
once
we
receive
feedback
hey.
This
is
a
shape.
I'd
like
you
to
have
as
right
now
we're
just
kind
of
speculating
as
to
what
people
might
need,
and
it's
not
going
to
be
a
breaking
change,
to
introduce
any
way
of
doing
this,
and
let
then
let
folks
like
the
azure
SDK
team
figure
out
which
one
to
use.
G
Okay,
I'm
good
with
that.
So
if
I
don't
hear
anything
else,
what
it
says
you
you're
on
the
screen,
one
of
the
things
I
want
an
input
on
and
ask
those
card
talking
to
me
right
before
this.
Here
are
these
four
exceptions,
because
we
we
went
away
from
the
Tri
read
that
returns
a
bool
to
have
the
inverter
or
self
throw
exceptions
which
are
going
to
be
caught
and
then
thrown
as
a
nice
jason
exception
say
something
like
unable
to
convert
value.
G
Here's
the
path-
and
you
know
the
reader
position
and
all
of
that
and
I
have
four
exceptions
here.
Two
of
them
are
obvious:
I
think
one
is
format
exception.
The
reader
throws
us
quite
a
bit
and
it's
just
convenient
exception
to
throw
in
the
Jason's.
Not
what
you
expect.
Overflow
exception
is
common.
When
calling
parse,
we
don't
really
do
this
internally,
maybe
for
the
Enuma
converter,
but
it
you
know
if
somebody's
doing
it
in
converter
and
they
call
parse
instead
of
try
parsed
and
you
know
this
would
be
thrown.
G
I
believe
in
valid
argument
in
all
of
those
the
the
reader
can
throw
in
certain
cases
if
you
misuse
it,
but
that's
usually
a
misuse.
K
L
C
That
leak
is
there
bug
format
exception,
is
they
called
get
do
it
and
it
wasn't
to
do
it
valid
operation
exception?
Is
they
call
it
do
it
and
it
was
a
string
and
I?
Don't
know
why
we
would
ever
want
overflow
exception.
Ii
like
these
seem
like
they're
just
customer
overflow
exception
will
be
something
like
I,
think
math.abs,
and
then
you
pass
it
in
32-bit
value
or.
G
C
K
K
Not
getting
the
data
by
manually
extracting
bytes
from
the
video
right
right,
but
you
could
argue
like
this
point.
This
point
is
more
like
so
I
am
NOT
in
your
reader
API
I'm,
just
using
how
many
I
really
am
convert,
I'm
writing
an
enum
conversion
and
I
just
call
the
frameworks
intercourse
on
lead
or
values
back
in
dirt.
First
does
too,
even
though
this
is
not.
This
is
not
about.
You
know
just.
G
A
They're
on
me
to
me
the
thing
that
we
should
make
sure
because
I
think
the
most
common
thing
is:
you
have
you're
composing
your
stuff
over
the
reader
right
so
like
I.
Think,
if
I
call
methods
on
the
reader
that
should
just
propagate
anything
I
do
custom.
I
would
be
okay
if
the
user
has
to
do
code,
because
that's
kind
of
I
mean
that's
kind
of
sensible.
A
A
Let's
I
think
that
kind
of
makes
sense
right
so
I'll
give
an
exceptional
generally
agree
with
Jeremy,
like
your
code
is
buggy
like
there's
nothing
that,
like
it's,
not
a
it's,
not
a
problem,
and
the
payload
is
the
way
you
you
go
to
your
converter.
All
right,
embedded
operation
was
the
thing
that
was
unfortunate,
based
on
the
way
our
video
works,
but
I
think
the
I
think
a
gonna
exception.
We
should
definitely
not.
K
Catch
so
to
clarify
arguments
for
my
exception
and
in
that
operation,
after
other
two
exception
to
the
reader,
does
throw
Jerusalem
or
Mac
and
valid
okay,
so
yeah
definitely
catch.
So
you
can
know
for
sure.
Okay
now
is
in
other
realities
is
the
argument
and
overflow,
for
example.
Let's
not
do
it
because
you.
G
C
They
have
a
prefix
and
now
they're
moving
it
together.
If
they
just
call
Reader
API
yeah,
they,
it
seems
sensible
to
say
they
don't
need
a
custom,
try
catch
and
then
it
will
be.
Oh,
you
did
Jason
E
stop.
This
is
a
Jason
eat
exception
at
the
moment
that
they
write
their
own
code
to
handle
things
yeah.
They
have
to
turn
it
into
adjacent
exception,
so
try
catch
free
throws
Jason
exception.
If
they
want
everything
out
of
their
converter.
C
To
look
the
same,
they
can
write
that
it
goes
against
guidelines
to
catch
all
exception
types,
but
they
can
do
the
normalization,
and
so
it
just
comes
down
to
there's,
there's
easy
converters
and
then
there's
hard
converters,
and
it's
just
like
everything
else
that
we
ever
have
in
the
framework.
Yeah
easy
ways
are
really
easy
and
hard
ways
are
uglier.
So.
A
C
Shows
the
other
option,
which
is
weird
because
now
changes
the
code
with
somebody
right
there
is.
We
have
an
internal,
an
internal
value
on
the
reader
that
changes
it
from
throwing
and
valid
operation
exception
to
the
stoic
Jason
exception
that
the
see
realize
your
puts
it
in
that
mode
before
when
passing
it
back
in
these
callbacks.
C
But
we
could
say
that
we're
going
to
change
what
the
reader
does
and
what
the
reader
throws.
If
we're
in
inside
the
serialism.
Would
you
consider
just
making
the
reader
always
to
review
some
exceptions
and
not
any
of
these
four?
So
if
you're,
using
the
reader
in
valid
operation
exception
is
the
right
exactly
I'm,
sorry,
yeah,
so
the
only
time
it
makes
sense
to
change
what
it's
throwing
is
when
it's
being
used
inside
some
other
well.
C
Could
always
fudge
that,
though,
to
make
scenarios
more
usable
by
people
and
it's
just
God
I'm,
just
the
right
exception,
or
you
have
called
this
method
in
this
is
not
a
method
you
can
call
given
the
state
of
the
subject
it
is
I
have
yeah
so,
and
another
thing
you
can
do
is
when
your
any
any
exception,
that's
thrown
by
the
Jason
reader.
There
is
a
property
bag.
On
the
exception
object,
you
can
always
shove
a
value
and
they're
saying
this.
C
A
J
G
D
G
C
There
for
yeah,
it's
public,
you
could
you
could
shove
it.
You
know.
Jason
reader
exception
people,
true
Internet,
and
then
yes,
this
could
do
a
catch
exception
where
there,
when
he
died,
Dana
dot
try
to
get
value.
You
know
Jason
reader
template,
ideally
the
data,
so
data
is
just
like
their
canary,
but
ideally
the
key
is
a
string
and
the
value
is
a
primitive.
So
in
France,
whatever
one.
G
Of
the
issues
today
is
that
the
the
path
property
on
Jason
exception,
Jason
path-
very
you
know
handy
when
debugging
is
not
available
on
the
reader
today,
before
performance
reasons,
I'm
gonna
serve
sterilizer
calculates
it
instead.
Okay
on
that,
would
that
wouldn't
be
available
to
the
user,
trying
to
throw
their
own
exception.
C
C
G
C
He
knows
what
the
token
is.
It
doesn't
got
there,
but
yeah
we
make
it
a
be
like
presumably
you're
already
catching
the
other
jason
reader
exception.
So
if
it
just
do
it
empty
when
you've
built
the
path
on
top
of
it,
that's
another
option
they
have
so
we
could
just
special
cases
like
special
reversible,
but
I
mean
like
once
once
we're
doing
this
metadata
thing.
We
should
just
yeah
that
put
in
the
doc
said
that
actually,
that
sort
of
and
it'll
rewrap
anything
that
has
that
attribute
on
the
data
property.
K
Also
saw
results
might
be
concerned
that
hag,
which
is
you
know
the
read,
and
the
reader
will
never
to
argument
section
right
and
therefore
the
writer
does
throw
an
exception.
So
if
you
wanted
to
just
have
a
list
or
exception
to
be
catch,
then
be
the
difference
between
that
argument.
Exception
is
a
usage
yeah.
K
Let's
say
a
poco
that
is,
there's
a
string
property
that
happens
to
be
more
than
a
100
megabyte
rider
throws
an
exception,
so
it's
not
really
a.
Why
is
there
an
argument
exception?
Because
your
argument
is
the
thing
you
can't
support,
because
you're
passing
out
string
then
to
nourish.
Do
I
just
write
a
Pia
I
wouldn't
know
about
the
caller
know
that
up
front
all
of
this
tree.
B
A
A
Like
if
they
expose
the
content
as
a
public
API
or
something
right
or
that
mean
then
in
decades,
I
can
actually
write
the
code
right,
in
which
case
it
would
be
okay,
but
yeah.
You
could
could
easily
imagine
with
somebody
operation
exception
in
that
case,
but
it's
the
same
like
it's
basically
dynamic
property
of
the
thing
you're
stating
in
the
right
eye,
like
I'm.
A
An
exception
is
usually
for
cases
where
you
know
you
pass
in
three
Inns
and
think
they
have
a
certain
relationship
to
each
other
that
you
that
you
violated
or
something
right,
you're
not
like
this
is
not
like.
The
data
is
invalid
or
anything
like
it's.
It's
like
yo
wait,
I,
don't
support
gigabytes
of
data.
All
right,
hey
by
me,
like
I,
mean
I
think
in
general,
like
by
the
way,
we
could
also
use
exception,
dot
source,
because
it
also
seems
like
it's
exactly.
For
that
reason,
it's
a
string.
Yes,
the.
A
F
B
C
For
the
yourself
and
what
you
became
targets
like
it's,
basically,
the
method
base
of
through
the
exception,
yeah
I,
didn't
you'd,
have
to
check
I
mean
you
could
ask
if
the
target
sites
declaring
type
is
Jason
reader,
but
then
users
I
mean.
If
we
want
to
say
we
don't
want
users
to
also
opt
into
it,
but
there's
no
data
collection,
but.
A
A
C
C
C
A
A
G
A
G
I
A
I
mean
source
is
like
if
you
look
at
primary
exception
at
some
point:
I
think
I
did
an
exception,
dialogue
or
something
right
dump
the
source.
The
source
in
the
in
dotnet
is
usually
the
assembly
name,
but
there's
many
components
that
send
it
to
a
custom.
Video,
like
sequel.
Does
that
I
think
XML?
Does
it
it's
basic
diagnostic
information,
for
whoever
cares
about
that
string
is.
K
A
C
J
C
J
C
C
A
C
Rewrite
source
I
think
that
they
move
the
type
and
the
what
the
X
M
app
model,
X
app
launcher
so
I
think
that's
divert
of
that
might
be
click
once
oh
yeah
that
I
have
and
I
think
they
moved
the
type
out
of
system
deployment.
So
they,
when
they
throw
it,
they
they
overwrite
source
to
say
system
deployment
in
another
presentation.
C
K
B
A
B
J
C
G
G
G
I
think
the
third
thing,
then,
is
that
the
the
user
code
for
converters
need
to
make
it
easy
to
throw
Jason
exception
today,
there's
basically
one
constructor,
you
know
it
takes
to
string
the
line,
number
path
and
byte
offset
whatever,
but
III
think
I
need
to
add
two
overloads
one
default
with
nothing,
the
second
one,
a
string
parameter
like
the
message
and
and
when
thrown
on
by
the
user.
We
would
catch
that
INRI,
throw
and
add
the
path
and
my
number
and
all
that
that's
unreasonable.
If
Yuri.
K
That's
created
so
right
now
the
decency
lies
our
special
case.
Edition
exceptional
catches,
it
right
and
then
to
do
the
wreath
row
right
and
then
it
has
this
list
of
exceptions
that
we
said
hey.
You
don't
need
to
use
this
list
of
exception.
Just
do
a
catch-all
and
the
exception
of
source
yeah
filter
when
you
filter
by
that
will
it
continue
to
special
case
an
exception.
C
G
A
C
C
C
Well,
you
you
wouldn't
even
need
to
do
that.
I
think
like
if
you
see
in
Jason
the
exception
coming
up.
Jason
exception,
presumably
has
a
path,
property
or
something,
but
they
don't
know
how
to
set
know.
The
Jason
serializer
doesn't
know
how
to
say
user,
throwing
it
with
me
now,
which
is
why
I
said.
Maybe
you
want
they
arrived
type
off
of
Jason
exception,
which
is
something
like
Jason
conversion
exception
that
doesn't
take
any
of
that
data.
C
A
C
I
J
A
A
C
L
K
G
A
More
Christmases
that
otherwise
I
have
a
specific
question,
a
specific
question
or
comment.
So
if
you
go
back
here,
I'm
still
somewhat
and
loss
how
this
attribute
is
supposed
to
work
so
yeah
I
guess
it
is
I
derive
from
this
attribute
right
and
then
I
override,
create
converter.
If
I
want
to
have
a
special
converter,
what.
G
Do
I
only
okay,
sorry
I'm
just
gonna
interrupt!
You
only
have
to
override
this
in
a
special
case
if
you
want
to
pass
additional
state
to
your
converter.
Otherwise
you
can
use
this
existing
one
and
just
specify
in
the
constructor
of
the
converter,
type
and
I'll
automatically
create
the
converter
for
you
right.
G
A
K
A
A
J
C
A
K
B
C
A
C
It's
about
one,
it's
just
the
value.
Small
CF
then
also
works.
You
know
if
you
were
using,
you
know
if
you
use
reflection-
and
you
put
one
of
these
back,
you
can
see
like
they've
reinstated,
specifically
this
type
but
you're
like
whoa.
What's
what
value
did
they
pass?
I,
don't
know
that
you
can
go
back
and
recover
what
the
literal
in
the
il
was.
A
C
C
C
L
C
A
A
In
fact,
if
you
don't,
if
you
stayed
is
something
you
can
compute
yeah,
you
can
actually
get
a
wave
in
this
sample
to
delete
the
entire
constructor,
because
basically,
we
will
automatically
now
invoke
the
base
constructor,
that
is
protected
yeah,
which
doesn't
get
any
stayed
yeah.
So
the
only
way
you
only
be
able
to
have
your
own
constructor
I
see
if
you
need
state
yourself
and
then
you
just
omit
the
entire
base,
call
don't.
K
C
Of
point
never
mattered,
no
one
ever
read
the
value
that
went.
They
have
in
this
code
right
now,
I
think
the
serializer
does
to
determine.
No
would
you
be
using
where
this
attribute
the
type
at
this
point
converter
attribute
was
on
you'll,
see
it's,
it's
defining
all
the
property,
the
attribute
researcher.
What
is
property?
Not
type
okay,.
H
C
Right
now
it
just
ignores
that
value,
because
the
person
who
wrote
it
knows
that
they
only
applied
it
on
the
thing
that
was
returning
at
the
title
on
here,
the
value
they
pass
to
the
base
class
we
had
ignored
because,
presumably
it's
the
default
value
of
the
base.
Korea
inverter
method
is
return.
This
attribute
only.
C
A
C
C
Activator
instant
slowly
would
have
to
check
to
see
if
you
called
the
parameterless
constructor
and
if
so,
throw
saying
you
need
to
overwhelm
each
I
mean.
Presumably
it's
just
returned
activator,
not
create
instance,
the
front
of
the
property
and,
if
you
put
it
on
there
and
then
back
to
me
to
create
instance,
yelled
at
you
well
so
I
know.
So
now
we
have
an
issue
right
where,
if,
if
your
sub
classing
gates
and
converter
attribute-
and
you
really
need
to
override
a
method-
that's
not
mark
abstract,
and
now
we
have
problems.
Now.
L
K
A
What
attribute
is
fine,
because
it's,
it
seems
like
a
very
somewhat
advanced
scenario
like
I
think
the
best
we
could
do.
We
really
want
to
help
those
people
that
need
to
extend
this
attribute
is
to
say
in
the
virtual
method.
We
just
check
whether
converter
time
is
now
and
then
to
a
better
exception.
Understanding
the
thing
about
reference,
a
yeah
in
operation
exception.
You
must
set
a
converter
type
or
something
right,
I
mean
you
didn't
tell
me
what
to
do
either
overwrite
me
or
tell
me
what
to
do
my,
but.
C
K
G
We
talk
about
that,
I
mean
I.
Basically
we're
saying
we
don't
need
constructor
primer
right,
no
I.
G
F
G
G
The
next
thing
that
will
be
used
is
the
any
kind
of
runtime
converter
you
added
right,
which
will
override
any
kind
of
static
attribute
you
put
on
a
type,
but,
for
example,
if
somebody
has
a
cool
phone
number
type,
and
you
put
the
attribute
on
it
to
say,
here's
my
converter
and
you
don't
like
that
converter,
you
can
still
override
it.
There's
a
edie
mechanism,
think
that
makes
sense
to
you.
That
would
be
consistent
with
how
kind
of
the
framework
in
a
way
does
it.
G
K
A
Because
think
of
it
right
like
them,
oh
my!
The
question
is
like
what
is
more
localized
right.
The
first
one
is
more
localized
in
the
static
hierarchy
right
because
on
the
property,
not
on
the
time,
yeah
right,
that
makes
sense,
yeah
right,
putting
something
on
the
type
means.
This
is
global
for
the
entire
program
right
versus
doing
it
in
the
registration
on
Civilization
option
is
just
global
within
your
civilization
section
right,
so
that
so
the
acceleration
options
is
more
localized
than
the
type
of
distillation
is
so
it's
okay,
that
gotta
but
I.
A
Think
to
your
point
yeah,
because
you
can
register
converters
on
properties
on
the
sill
ization
options.
That's
why
this
believed
thing
happens,
but
I
think
if
civilization
options
would
give
us
a
way
to
say
on
this
type,
this
property
has
this
converter.
It
would
probably
come
after
the
after
the
like
in
between
the
first
two
right
same
button
by
the
spiders
produced
by
the
same
logic,
but.
A
K
C
A
K
So,
let's
let's
say
you
had:
oh
I,
see
what
you
said
so
I'm
saying
if
you
had
a
complex
object
like
a
type
with
another
type,
zero.
These
are
almost
types
of
user-defined,
the
internal,
the
nested
type
under
the
rest
of
the
one
that
has
property.
We
do,
if
we
add
an
octave
converter
attribute
on
it,
say:
I
want
to
use
somewhere
food.
L
B
C
E
K
C
A
Right
it
could
be
because
we
had
two
converter,
you
registering
it
for
it
type,
but
if
she
affected
the
converter
says,
can
convert
type
foo
right
return,
true,
but
you
don't
specify
the
type,
but
given
that,
basically,
we
asked
to
convert
that.
Can
you
handle
food?
The
answer
is
yes,
your
Victor.
Your
global
registration
is
always
for
whatever
types
that
converter.
K
A
Is
the
third
bullet
the
same?
The
third
bullet
is
saying
that
if
you
apply
adjacent
converter
to
the
type,
if
you
actually
have
an
attribute
on
fool,
that
means
you
don't
have
to
basically
put
the
registration
in,
but
if
I,
but
if
you
do
put
in
registration
and
that
takes
precedence
or
whatever
you
put
on
that
attribute
yeah,
because
it's
more
than
it's
more,
it's
more
scope
that
it's
its
scope
to
use
the
relation
section
rather
than
to
the
entire
program.
K
A
Because
we
think
that's
just
because
it
is
earlier-
that's
just
an
artifact
of
the
fact
that
you
cannot
register
civilization,
sir
converters
for
property
right,
there's
no
API
for
that.
If
there
would
be
such
an
API
I
think
that
API
would
take
precedent
will
be
basic.
The
very
first
item
in
the
list.
Yes,.
C
Once
you've
actually
dealt
into
a
type
anything
that
that
once
you've
actually
said
I'm
going
to
once,
you've
made
the
decision
to
start
serializing
a
type
as
the
type
itself
is
laid
out
yeah.
At
that
point,
you
start
trusting
the
annotations
on
the
types
of
properties.
You
trust
that
it
did
that
it's
doing
the
correct.
K
L
G
You
were
to
do
that
I
mean
then.
Basically,
when
you
put
the
custom
data
type
I
mean
we
put
the
attribute.
You
know
on
your
custom
data
type
or
poke
goal.
You
can
never
override
it
right
at
runtime.
I
A
In
general,
me
look
at
this
format
from
a
customer
time.
Right
I
mean
there's
two
kinds
of
customers:
right,
there's
the
one:
they
don't
want
people
of
converters
on
the
registration
at
all.
They
would
just
put
the
attributes
on
their
details
because
they're
designed
for
a
socializing
right,
they
would
never
put
on
properties
either
right.
They
would
just
put
them
on
the
time
because
you
would
just
say
my
address
type
is
going
to
be
civilized
everywhere,
the
same
like.
A
Why
would
I
want
it
different,
but
it's
not
the
person
or
whether
it's
on
an
organization,
it's
just
the
same
thing,
right,
yeah
and
there's
a
second
kind
of
customers
who
Danny
doesn't
want
to
do
anything
on
the
air
on
their
types.
They
just
want
to
put
everything
on
the
on
the
on
the
registration,
because
I
don't
want
to
pollute
their
type,
which
is
kind
of
a
crystals
coming
from
right,
and
then
there
is
the
kind
of
in-between
where
you
know.
A
Let's
say:
Levi
offers
the
address
type
and
I'm
using
the
dénia
SDK,
but
I,
don't
like
how
how
he
like
how
his
converter
works
right
and
it's
converters
on
the
type
level
so
I'm
like
no
I
override
this
thing
in
my
tea
and
you
know
in
the
the
address,
decay
and
I
see
a
lot
of
differently
right.
That's
why
you
generally
want
runtime
registration
to
win,
because
it's
the
only
way
I
have
customized
somebody
else's
time
like
if
somebody
else
already
designed
it
have
to
be
serviceable,
I'm
stuck
with
their
behavior.
C
C
A
B
C
L
K
C
I
the
point
that
I
was
making
was
actually
an
argument
to
keep
it
house
again
go
run
out
and
go
back
to
the
go
back
to
the
orderings,
have
a
right
where
you
have
like.
Maybe
maybe
you
have
a
billing
address
on
the
shipping
address
or
both
type
twos
address
yeah?
Why
would
I
pass
annotations
along
those
properties
individually,
rather
than
just
putting
it
on
the
address
type?
C
It's
just
more
work
for
me.
The
only
reason
I
would
ever
do
it,
as
the
designer
of
that
type
is,
if
I
actually
wanted
to
change
how
billing
and
shipping
were
serialized
with
regard
to
each
other,
and
at
that
point,
I'm
now
making
a
very
localized
decision
within
the
structure
of
this
type,
that
this
is
how
the
data
needs
to
look
Emerson.
K
C
Not
necessarily
because,
at
the
type
level,
what
you're
saying
is
I'm
putting
this
out
on
the
wire,
the
way
that
address
would
do
itself
like
I'm
making
from
within
the
order
class
I'm.
Making
no
statements
as
to
how
address
should
actually
write
itself
out
an
address
is
fully
responsible
for
that,
and
in
this
case
you
can
change
how
address
is
responsible
about
if
the
order
type
were
instead
to
put
annotations
both
on
shipping
address
and
billing
addresses
properties.
Now
the
type
the
order
type
is
sane.
I
am
very
opinionated
as
to
how
they
say.
L
C
C
G
I
mean
I,
there's
a
couple
hierarchies.
Those
points
confusing,
there's
runtime
versus
design,
time
too,
and
then
there's
sight
property.
So
you
lay
those
two
on.
You
have
a
matrix,
there's
a
missing
thing
here,
which
would
be
the
first
pole.
It
says
at
runtime
I
need
you
know
for
this
particular
property,
disc
inverter.
G
You
can
delegate
like
calling
the
sterilizer
again
with
your
type,
so
you
could
do
it
that
way.
I
didn't
call
back
in
the
sterilizer
okay
in
theory,
if
we
had
a
nice
model
here,
which
I
don't
think
I'll
have
time
to
you'd,
be
able
to
say,
give
me
the
converter
for
customer
a
person
whatever
and
I'll
just
return
the
default
one.
If
there's
not
one
today
the
default
one's
not
expose
you
to
get
no
back,
and
then
you
could
call
read,
read
or
write
directly
on
that
converter
as
well.
C
Methods
like
okay,
so
even
even
if
we
don't
have
api's
for
the
scenario,
I
think
having
documentation
for
what
it
might
look
like
to
write.
Such
a
converter
would
be
really
useful
because
we,
unlike
I,
said
in
this
document.
We
already
have
examples
of
how
to
do
list
of
int
in
list
of
long
I
would
just
like
to
see
that
extended
to
support
this
to
literally.
G
Wide
this
down
sample
once
I
check
to
close
in
to
but
to
the
key
value
pair
mm-hm
type,
I'm
gonna,
be
key
value
pair
key
key
key
value
or
souls
can
vary,
and
the
converter
of
stuff
won't
have
any
specific
knowledge
of
those.
True
I
can
point
to
that
one
that
might
be
a
better
example
than
list,
because
it's
also
more
complicated
because
you
have
to
generic
bill
use.
Okay,.
I
C
G
G
It
has
a
list
of
converters
here
and,
if
you
scroll
down
just
a
hair,
just
say
get
converter.
I
added
this
based
on
feedback.
I
can
explain.
I
mean
it
might
be
useful
to
you.
If
you're
ready
to
implement
in
converter,
say
hey,
give
me
the
default
anoon
converter.
Instead
of
having
to
call
back
into
the
framework,
you
know
Jason
sterilizer,
dud,
worse
or
something
more
efficiently,
but
getting
the
converter
and
doing
it
that
way.
However,.
G
If
this
could
actually
be
another
helper
method
on
a
custom
collection
right
now,
it's
a
list
of
GSN
converter
on
the
converters
property
who
could
make
make
a
custom
collection
and
have
that
method
on
there.
That's
one
alternative,
but
the
main
thing
that
that
can't
kind
of
came
up
in
implementation
of
this
is
that
this
method
exists
internally
already,
and
it's
called
quite
a
bit
by
the
framework,
but
it
assumes
that
once
it
calls
it,
it
gets
the
proper
converter
given
a
whole
list
of
converters
and
then
caches
it.
G
So
if
somebody
calls
this
Nocturne,
DC,
realization
or
serialization,
but
before
that
I'm
not
sure
what
to
do,
I
mean
if
we
cache
it
at
that
point,
we'd
have
to
throw
it
away.
You
know
when
the
first
use
of
serialization
occurred,
because
it
could
change
right.
Oh
I,
get
thrown
valid
operation
documented,
saying,
hey,
don't
call
unless
you're
coming
from
a
converter.
So
why
do
we
need
to
be
public?
We
don't
need
to
is
just
based
upon
feedback
that
that
said,
hey
you
know
how
do
I
get
a
converter
from
within
a
converter.
I
G
So
we
get
a
load.
I
just
have
to
do
the
right
thing
internally
to
say:
okay,
you
can
call
girl,
you
want
you
gotta,
you
had
a
converter,
you
plug
it
further
again,
you
might
get
a
different
result
back.
You
know.
I
I
just
need
to
discuss
that
with
somebody
before
I.
You
know
that
I'm
implementing
that
only.
A
What
I
would
do
is
I
would
say,
get
converter
like
the
API.
You
have
here
never
caches
unless
there's
an
internal
method
that
you
call
on
metallization
starts
it's
like
say,
snapshot
or
something,
and
after
that
point
like
you,
can
learn
or
modify
converters,
and
that's
also
when
you
start
caching
before
that,
you
don't
care.
Okay.
As
long
as
everybody's.
K
G
M
G
I
think
yeah
the
the
main
scenario
that
I
thought,
if
you
you're
in
the
implementation
of
your
own
converter
yeah,
and
you
just
need
to
convert
a
property
that
you
don't
know
how
to
convert
yourself,
maybe
for
whatever
reason.
Okay
I
knew
want
to
do
that
efficiently.
This
is
how
you
got
other
scenarios
yeah.
Maybe
you
want
to
inspect
the
list
of
converters
without
having
to
manually,
implement
the
same
logic
as
get
converted
to
figure
out
which
one
would
be
selected
for.
G
K
A
G
A
Can't
make
sense,
if
you
think
about
let's
say
you
want
to
do
the
f-sharp
thing
where
you
say:
I
can
do
this
community
unions
right.
You
know
how
to
you
know,
detect
the
discriminated
union.
You
know
how
to
do
the
decay
switch,
but
then
you
don't
know
how
to
do
student
vs.
person
yeah.
You
just
say
you
give
me
the
person
of
student
converter,
but
but
I
know
how
to
do
the.
You
know
the
surrounding
JSON
to
the
stand
and
that's
basically
what
you
could
implement
that.
C
I,
ideally,
if
you're
getting
a
converter
for
a
list
of
person,
the
list
of
person
converter
would
need
to
call
back
in
here
in
order
to
figure
out
what
to
do,
I
mean
you
can
you
could
also
do
that
at
try,
read
and
try
right
time,
but
that
might
end
up
being
more
expensive
than
doing
it
here.
That's
why
I
would
like
to
see
the
sample
code
yeah,
though
we
discussed
earlier
yeah.