Sophie

Sophie

distrib > Fedora > 14 > i386 > by-pkgid > 864d1c3c3cd8df4e3a2692faf8776e05 > files > 1331

db4o-doc-7.4-2.fc13.i686.rpm

<html>
  <head>
    <META http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Accessing Persistent Classes From Different .NET Applications</title>
    <link rel="stylesheet" type="text/css" href="../../style.css">
  </head>
  <body>
    <div class="CommonContent">
      <div class="CommonContentArea">
        <h1>Accessing Persistent Classes From Different .NET Applications</h1><div id="TOC"><div id="TOCinner"><span class="TOCtitle">Contents</span><div class="TOCcontents"><ul><li><a href ="#Problem">Problem</a></li><li><a href ="#Reason">Reason</a></li><li><a href ="#Solution">Solution</a></li></ul></li></ul></div></div></div><p><font color="#990000">This topic applies to .NET version only</font>&nbsp;</p><a name="Problem"></a><h2>Problem</h2>

<p>Accessing db4o database created and filled in with a .NET
application or library from another .NET application or library shows an empty
database.</p><a name="Reason"></a><h2>Reason</h2>

<p>db4o class name format in db4o consists of the full class
name and assembly name:</p>

<p><code>Namespace.ClassName, AssemblyName</code></p>





<p>Two different .NET applications (libraries) usually have
different assembly names. If you do not use
<a href="../implementation_strategies/aliases.html" class="wikiLink">aliasing</a>, the class name will be appended
with the current application assembly name.</p><a name="Solution"></a><h2>Solution</h2>

<p>In order to access db4o persistent classes from different
applications (libraries) you will need to use an
<a href="../implementation_strategies/aliases.html" class="wikiLink">Alias</a>. For example:</p>

<p><b>Application1.exe ("Application1" assembly):</b></p>

<p><code>objectContainer.Set(new MyClasses.Pilot("David
Barrichello",99))</code></p>

<p><code>// internally the class is saved as "MyClasses.Pilot,
Application1".</code></p>

<p><b>Application2.exe ("Application2" assembly):</b></p>

<span name="cs_wiki_filter" csw_filters="cs">

<p>c#:</p>

<p><code>// create an Alias for the MyClasses.Pilot,
Application1:</code></p>

<p><code>IConfiguration configuration =
Db4oFactory.NewConfiguration();</code></p>

<p><code>configuration.AddAlias(new
TypeAlias("MyClasses.Pilot, Application1", " MyClasses.Pilot, Application2"));</code></p>

<p><code>IObjectContainer container =
Db4oFactory.OpenFile(configuration, "reference.db4o");</code></p>

<p><code>// now you query as usual</code></p>

<p><code>IObjectSet result = container.Get(new
Test());</code></p>

</span>

<span name="cs_wiki_filter" csw_filters="vb">

<p>VB:</p>

<p><code>// create an Alias for the MyClasses.Pilot,
Application1:</code></p>

<p><code>Dim configuration As IConfiguration = Db4oFactory.NewConfiguration()</code></p>

<p><code>configuration.AddAlias(new
TypeAlias("MyClasses.Pilot, Application1", " MyClasses.Pilot, Application2"))</code></p>

<p><code>Dim container As IObjectContainer&nbsp; =
Db4oFactory.OpenFile(configuration, "reference.db4o")</code></p>

<p><code>// now you query as usual</code></p>

<p><code>Dim result As IObjectSet&nbsp; = container.Get(New
Test())</code></p>

</span>



<p>For more information see
<a href="../object_lifecycle/class_name_format_in_.net.html" class="wikiLink">Class Name Format In .NET</a> and
<a href="../implementation_strategies/aliases.html" class="wikiLink">Aliases</a>.</p></div>
    </div>
    <div id="footer">
					This revision (7) was last Modified 2007-05-09T07:20:53 by Tetyana.
				</div>
  </body>
</html>