Le classi dello stesso spazio dei nomi dovrebbero essere mantenute nello stesso assembly?

6

Ad esempio, ISerializable e Serializable attributo si trovano entrambi nello spazio dei nomi System.Runtime.Serialization , ma non nell'assembly con lo stesso nome. D'altra parte, gli attributi di DataContract sono nello spazio dei nomi / assembly System.Runtime.Serialization .

Ciò provoca confusione quando una classe può avere using System.Runtime.Serialization ma non ha ancora un riferimento all'assembly System.Runtime.Serialization , ovvero non è possibile trovare DataContract .

Questo dovrebbe essere evitato nella pratica, o è comune che gli spazi dei nomi siano suddivisi su più assiemi? Di quali altri problemi si dovrebbe prestare attenzione quando si fa questo?

    
posta dlras2 14.04.2012 - 21:57
fonte

1 risposta

8

I namespace sono unità di raggruppamento logico.

Gli assembly sono unità di raggruppamento fisico.

Cioè, spezzare le cose in diversi assembly solo se verranno distribuiti separatamente.

Con l'esempio che hai dato, potresti voler usare ISerializable e Serializable senza trascinare in DataContract , ma se si usa DataContract , logicamente appartiene al stesso posto in cui si occupa di serializzazione.

    
risposta data 14.04.2012 - 22:01
fonte

Leggi altre domande sui tag