How can I prevent anyone from holding a reference to an object in C#
<p>I have a class like this</p>

<pre><code>internal class  Report
{
    public Company TargetCompany { get; private set; }

    .... // other stuff
}
</code></pre>

<p>I do not want any one to be able to do this</p>

<pre><code>Report r = GetReport();

Company c = r.TargetCompany;
</code></pre>

<p>but instead always use</p>

<pre><code>r.TargetCompany 
</code></pre>

<p>when they want access to the Company variable.</p>

<p>Is that possible? Does that even make sense?</p>
