Id は Contact クラスの非公開/保護/内部プロパティです。これは、Silverlight ランタイムに関しては、アクセスできないメンバーであることを意味します。つまり、実行時にその値を取得することはできません。Contact.Id はあなたの手の届かないところにあります。
Silverlight はアクセス レベルを尊重し、呼び出し元のコードのアクセス レベルのメンバーにのみアクセスできます。たとえば、すべてのクラスは、他のすべてのクラスのすべてのパブリック メンバー (プロパティ、メソッド、イベント、フィールドなど) を呼び出すことができます。別の例として、同じアセンブリ内のクラスのみが、同じアセンブリ内のクラスの内部メンバーを呼び出すことができます。そのアセンブリ外のクラスが内部メンバーにアクセスしようとすると、MemberAccessException が発生します。最後の例として、クラスがプライベート メンバー (プライベート フィールドなど) を宣言する場合、そのクラスのみがそのプライベート メンバーにアクセスできます。別のクラスがクラス内のプライベート値にアクセスしようとすると、MemberAccessException が発生します。
上記は、実行時 (リフレクション) で呼び出されるメンバーと、コンパイル時 (ハードコードされた) で呼び出されるメンバーの両方に当てはまります。