¿Cómo puedo representar un entero muy grande en .NET?

¿.NET viene con una clase capaz de representar enteros extremadamente grandes, como 100 factorial? Si no, ¿cuáles son algunas buenas bibliotecas de terceros para lograr esto?

.NET 4 tiene una clase BigInteger

Representa un entero con signo arbitrariamente grande.

El tipo BigInteger es un tipo inmutable que representa un entero arbitrariamente grande cuyo valor en teoría no tiene límites superiores o inferiores. Este tipo difiere de los otros tipos integrales en .NET Framework, que tienen un rango indicado por sus propiedades MinValue y MaxValue.

.NET tiene una clase BigInteger, pero desafortunadamente es interna. Sin embargo, varios lugares tienen el suyo. Puede obtener una implementación de IronPython, o la de CodeProject, o de Visual J #. Tengo que decir que no lo he probado yo mismo, así que no sé cuál es el mejor.

http://www.codeplex.com/IronPython http://www.codeproject.com/KB/cs/biginteger.aspx http://msdn.microsoft.com/en-us/magazine/cc163696.aspx

Microsoft.FSharp.Math.Types.BigInt

Puede representar cualquier número entero.

Aquí hay un enlace de la documentación del entero grande en el marco 4.0

http://msdn.microsoft.com/en-us/library/system.numerics.biginteger(VS.100).aspx

Mono ya tiene una implementación pública BigInteger:

http://www.go-mono.com/docs/index.aspx?link=T:Mono.Math.BigInteger

Puede tomar el ensamblaje Mono.Security para usarlo; dado que es una biblioteca de clase Mono, también debe tener licencia MIT.