Zipファイルの解凍で逡巡

Zipファイルの解凍をするのに、
.NET Framework3.0で提供されている
System.IO.Packaging名前空間のZipPackageを利用しようとしたのだが、
package相当のZipファイル以外は、パブリックではないメンバであるZipArchiveに中の情報が入っているにも関わらず、Partとしては取得できない・・・。
ZipArchiveのクラスはMS.Internal.IO.ZIP名前空間で、どうも普通には利用できない。
できるだけリフレクションを使わないでいけたらよかったのだけど、リフレクション使わないといけないっぽい。

codeplexにサンプルがあったので、ちょっと見てみようかな。