Vra

Ek het die gemeente 'n wat in die gemeente B hang (staties) op tipe T (verwysing tipe, 'n klas).

Ek het nie vergadering A maar ek doen eie gemeente B. T ongelukkig is 'n ware tipe (nie 'n koppelvlak) maar gelukkig A gebruik weerspieëling van sy lede te ontdek.

Ek wil in staat wees om dinamiese B (en T) te skep. Die enigste belangrike item is wat ek nodig het om seker te wees dat die "B en T" dinamiese geskep (nie hul lede) is "gelykstaande" tho diegene wat staties is saamgestel as 'n saamgestel.

  1. Ek kan weerspieëling gebruik uitstraal na B en T. skep Geen probleem.
  2. Ek kan B.dll skryf op skyf
  3. As 'n saamgestel teen hierdie B.dll dan kan ek dinamies verander T, geen probleem
  4. Maar as 'n saamgestel teen 'n ekwivalent (handgeskrewe B en T) dan die T "in 'n sou dieselfde naam vergadering en tik naam het, maar dit sou nie gelyk aan die een dinamiese geskep oorweeg word.

Ek neem aan dat die rede hiervoor is die eiendom GUID van die tipe. Toe ek B.dll skryf op skyf die T tipe het dieselfde GUID as die een wat ek kan dinamiese skep (selfs as ek sy lede te verander). Maar die "anders gelyk" handgeskrewe tipe nie dieselfde GUID deel.

In opsomming die GUID is dieselfde as die dll kom van die dinamiese geskep, maar is anders as die een staties geskep. Die GUID is dieselfde elke keer (selfs al is ek heropstel). Die GUID is dieselfde as ek die inhoud van die dinamiese Tipe verander.

Hoe werk die runtime bepaal of twee tipes is dieselfde? Hoe word hierdie GUID geskep? Dit maak gebruik van hierdie GUID en / of iets anders? Is dit moontlik om hierdie GUID toewys in my dimamic vergadering aan die een in die gemeente 'n wedstryd?

Kan hierdie GUID word staties ondersoek (Ek was nie in staat om dit te sien met Reflector of ildasm).

Nota: Aanvaar gemeentes is nie onderteken

.
Was dit nuttig?

Oplossing

Die NET runtime gebruik die naam vergadering, weergawe, 'n sterk naam (indien teenwoordig), en in sommige gevalle die kultuur te verwys gemeentes op te spoor. As 'n vergadering 'n verwys na 'n ander gemeente B is dit moontlik om B te vervang met 'n ander gemeente as die genoemde eiendomme is presies dieselfde. As B het 'n sterk naam wat jy kan net met dieselfde sterk naam skep 'n ander gemeente as jy die sleutel lêer wat gebruik is om die vergadering onderteken besit.

AFAIK, is die Type.GUID eiendom slegs gebruik wanneer u tipes geregistreer vir COM gebruik. Dit werk met die GuidAttribute klas. Dus, Type.GUID het niks te doen met die "identiteit" van 'n tipe.

http:: /

Jy kan meer inligting oor hoe die runtime gelokaliseer gemeentes hier lees /msdn.microsoft.com/en-us/library/yx7xezcf.aspx

Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top