Opt-Out/In è un termine nato dall'economia (nel marketing) che definisce l'approccio utilizzato in una operazione:
opt-out: senza richiesta (un cartellone pubblicitario che vedono tutti)
opt-in: con richiesta (quando ci si abbona ad una newsletter ad esempio)
Facendo un esempio in .NET potremmo dire che il BinaryFormatter (usato nelle sessioni dell'ASPState) o l'XMLSerializer (usato nelle comunicazioni dei webservice) sono dei serializzatori che serializzano tutto (opt-out), a meno di utilizzare l'apposito attributo per escludere l'elemento voluto.
Differentemente il nuovo DataContractSerializer (il serializzatore di WCF) usa l'approccio opt-in, che prevede la serializzazione di una classe e di ogni suo elemento solo dopo averli marchiati con un attributo esplicito, [DataContract] per la classe e [DataMember] per ogni sua proprietà.