I suggested the same thing, but was told the compiler didn't allow you to add constraints to the overridden method. Also, i believe his code compiles fine under csc, so unless it's a bug in CSC, there's definitely an issue here.
<br><br>Alan.<br><br><div><span class="gmail_quote">On 7/16/07, <b class="gmail_sendername">Adar Wesley</b> &lt;<a href="mailto:adar.wesley@gmail.com">adar.wesley@gmail.com</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div>
<div>Hi John,</div>
<div>&nbsp;</div>
<div>It seams to me there is a problem with the code.&nbsp; (I don&#39;t know if it worked before)</div>
<div>In </div><span class="q">
<ol>
<li>protected static T GetBusinessQueryObjectFromReader&lt;T&gt;(IDataReader reader) </li>
<li>
<div><span>74&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;where T : BusinessQueryObject, new()</span></div></li></ol></span>
<div><span>The generic parameter T is contained.&nbsp; However in:<span class="q"><br>public override T[] GetQueryObjects&lt;T&gt;(string query, params QueryParameter[] parameters)<br></span>T is not constrained.&nbsp; </span></div>

<div><span></span>&nbsp;</div>
<div><span>When you try to call GetBusinessQueryObjectFromReader&lt;T&gt;(IDataReader reader) </span></div>
<div><span>from within GetQueryObjects&lt;T&gt; with the same generic parameter you get the error.</span></div>
<div><span></span>&nbsp;</div>
<div><span>Either add the same constraint on T in the decleration of GetQueryObjects&lt;T&gt; or remove </span></div>
<div><span>the constraint from GetBusinessQueryObjectFromReader&lt;T&gt;.</span></div>
<div><span></span>&nbsp;</div>
<div><span>---</span></div>
<div><span>Adar Wesley</span></div><br>&nbsp;</div>
<div><div><span class="e" id="q_113d0c60f42ca056_5"><span class="gmail_quote">On 7/16/07, <b class="gmail_sendername">John Anderson</b> &lt;<a href="mailto:sontek@gmail.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
sontek@gmail.com</a>&gt; wrote:
</span> 
</span></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0px 0px 0px 0.8ex; padding-left: 1ex;"><div><span class="e" id="q_113d0c60f42ca056_7">I tried making a smaller example but couldn&#39;t reproduce the error because i&#39;m not exactly sure whats causing it. 
<br><br>Heres the code:<br><a href="http://dev.orchidesolutions.com/testcode.tar.bz2" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://dev.orchidesolutions.com/testcode.tar.bz2 </a><br><br>if you run &#39;nant&#39;&nbsp; you&#39;ll see the error, its: 
<br><br>
<ol>
<li>
<div><span>[</span>nant<span>]</span> /home/sontek/code/personal/devtoo/trunk/src/DataArch. <span>DataFactory</span>.<span>MsSqlDatabase</span>/DataArch.<span>DataFactory</span>.<span>MsSqlDatabase</span>.<span>dll</span>

 .<span>build</span> build </div>
</li><li>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Buildfile: file:<span>///home/sontek/code/personal/devtoo/trunk/src/DataArch.DataFactory.MsSqlDatabase/DataArch.DataFactory.MsSqlDatabase.dll.build</span> </div>
</li><li>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Target framework: Mono <span>2.0</span> Profile</div>
</li><li>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Target<span>(</span>s<span> )</span> specified: build </div>
</li><li>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </div>
</li><li>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </div>
</li><li>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; build:</div>
</li><li>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </div>
</li><li>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span>[</span>echo<span>]</span> Build Directory <a href="http://www.google.com/search?q=is+msdn.microsoft.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"><span>is</span>

 </a>/home/sontek/code/personal/devtoo/trunk/src/DataArch.<span>DataFactory</span>.<span>MsSqlDatabase</span>/bin/Release</div>
</li><li>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span>[</span>csc<span>]</span> Compiling <span>3</span> files to <span>&#39;/home/sontek/code/personal/devtoo/trunk/src/DataArch.DataFactory.MsSqlDatabase/bin/Release/DataArch.DataFactory.MsSqlDatabase.dll&#39; 
</span>.</div>
</li><li>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span>[</span>csc<span>]</span> /home/sontek/code/personal/devtoo/trunk/src/DataArch.<span>DataFactory</span>.<span> MsSqlDatabase</span>/MsSqlDataObjectFactory.<span>cs</span><span>(</span><span>351 
</span>,<span>30</span><span>)</span>: warning CS0219: The variable `columnsToUpdate <span>&#39; is assigned but its value is never used</span></div>
</li><li>
<div><span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [csc] /home/sontek/code/personal/devtoo/trunk/src/DataArch.DataFactory.MsSqlDatabase/MsSqlDataObjectFactory.cs(479,30): error CS0309: The type `T&#39;</span> must be convertible to `DataArch. 
<span>DataFactory</span>.<span>Common</span>.<span>BusinessQueryObject</span><span>&#39; in order to use it as parameter `T&#39; </span><span>in</span> the generic type or method `DataArch.<span>DataFactory</span>.<span>
Common 
</span>.<span>BaseDataObjectFactory</span>.<span>GetBusinessQueryObjectFromReader </span>&lt;T&gt;<span>(</span><span>System</span>.<span>Data</span>.<span>IDataReader</span><span>)</span><span>&#39;</span></div>
</li><li>
<div><span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [csc] /home/sontek/code/personal/devtoo/trunk/src/DataArch.DataFactory.Common/bin/Release/DataArch.DataFactory.Common.dll (Location of the symbol related to previous error)</span></div>
</li><li>
<div><span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [csc] /home/sontek/code/personal/devtoo/trunk/src/DataArch.DataFactory.MsSqlDatabase/MsSqlDataObjectFactory.cs(462,9): (Location of the symbol related to previous error)</span></div>
</li><li>
<div><span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [csc] /home/sontek/code/personal/devtoo/trunk/src/DataArch.DataFactory.MsSqlDatabase/MsSqlDataObjectFactory.cs(479,30): error CS0309: The type `T&#39;</span> must be convertible to `DataArch. 
<span>DataFactory</span>.<span>Common</span>.<span>BusinessQueryObject</span><span>&#39; in order to use it as parameter `T&#39; </span><span>in</span> the generic type or method `DataArch.<span>DataFactory</span>.<span>
Common 
</span>.<span>BaseDataObjectFactory</span>.<span>GetBusinessQueryObjectFromReader </span>&lt;T&gt;<span>(</span><span>System</span>.<span>Data</span>.<span>IDataReader</span><span>)</span><span>&#39;</span></div>
</li><li>
<div><span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [csc] /home/sontek/code/personal/devtoo/trunk/src/DataArch.DataFactory.Common/bin/Release/DataArch.DataFactory.Common.dll (Location of the symbol related to previous error)</span></div>
</li><li>
<div><span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [csc] /home/sontek/code/personal/devtoo/trunk/src/DataArch.DataFactory.MsSqlDatabase/MsSqlDataObjectFactory.cs(462,9): (Location of the symbol related to previous error)</span></div>
</li><li>
<div><span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [csc] Compilation failed: 2 error(s), 1 warnings</span></div>
</li><li>
<div><span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span></div>
</li><li>
<div><span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; BUILD FAILED - 0 non-fatal error(s), 7 warning(s)</span></div>
</li><li>
<div><span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span></div>
</li><li>
<div><span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; /home/sontek/code/personal/devtoo/trunk/src/DataArch.DataFactory.MsSqlDatabase/DataArch.DataFactory.MsSqlDatabase.dll.build(12,10):</span></div>
</li><li>
<div><span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; External Program Failed: /usr/lib/pkgconfig/../../lib/mono/2.0/gmcs.exe (return code was 1) </span></div>
</li><li>
<div><span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span></div>
</li><li>
<div><span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Total time: 1 seconds.</span></div>
</li><li><br>
</li><li><br>
</li><li>
<div><span>======= MsSqlDataObjectFactory =================</span></div>
</li><li><br>
</li><li>
<div><span>&nbsp; public override T[] GetQueryObjects&lt;T&gt;(string query, params QueryParameter[] parameters)</span></div>
</li><li>
<div><span>462&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{</span></div>
</li><li>
<div><span>463&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;DbCommand command = this.CreateNewCommand();</span></div>
</li><li>
<div><span>464 </span></div>
</li><li>
<div><span>465&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; command.CommandText = query;</span></div>
</li><li>
<div><span>466&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;foreach (QueryParameter parameter in parameters)</span></div>
</li><li>
<div><span>467&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{</span></div>
</li><li>
<div><span>468&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;DbParameter dbParameter = command.CreateParameter();</span></div>
</li><li>
<div><span>469&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;dbParameter.ParameterName = parameter.Name;</span></div>
</li><li>
<div><span>470&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;dbParameter.Value = parameter.Value;</span></div>
</li><li>
<div><span>471&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;command.Parameters.Add(dbParameter);</span></div>
</li><li>
<div><span>472&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</span></div>
</li><li>
<div><span>473 </span></div>
</li><li>
<div><span>474&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;List&lt;T&gt; list = new List&lt;T&gt;();</span></div>
</li><li>
<div><span>475 </span></div>
</li><li>
<div><span>476&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ExecuteReader(command,</span></div>
</li><li>
<div><span>477&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;delegate(IDataReader reader) </span></div>
</li><li>
<div><span>478&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{</span></div>
</li><li>
<div><span>479&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;list.Add(GetBusinessQueryObjectFromReader&lt;T&gt;(reader)); </span></div>
</li><li>
<div><span>480&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;});</span></div>
</li><li>
<div><span>481 </span></div>
</li><li>
<div><span>482&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return list.ToArray();</span></div>
</li><li>
<div><span>483&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</span></div>
</li><li><br>
</li><li><br>
</li><li><br>
</li><li>
<div><span>====== BASE&nbsp; ==========</span></div>
</li><li><br>
</li><li>
<div><span>&nbsp; protected static T GetBusinessQueryObjectFromReader&lt;T&gt;(IDataReader reader) </span></div>
</li><li>
<div><span>74&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;where T : BusinessQueryObject, new()</span></div>
</li><li>
<div><span>75&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{</span></div>
</li><li>
<div><span>76&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;QueryDataObject data = new QueryDataObject(reader);</span></div>
</li><li>
<div><span>77&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;T t = new T();</span> </div>
</li><li>
<div><span>78&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;t.data = data;</span></div>
</li><li>
<div><span>79&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return t;</span></div>
</li><li>
<div><span>80&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</span></div>
</li><li><br>
</li><li><br>
</li><li>
<div><span>public abstract T[] GetQueryObjects&lt;T&gt;(string query, params QueryParameter[] parameters) </span></div>
</li><li>
<div><span>91&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;where T : BusinessQueryObject, new(); </span></div></li>
</ol><br><br></span></div>_______________________________________________ 
<br>Mono-devel-list mailing list<br><a href="mailto:Mono-devel-list@lists.ximian.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">Mono-devel-list@lists.ximian.com</a><br><a href="http://lists.ximian.com/mailman/listinfo/mono-devel-list" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">

http://lists.ximian.com/mailman/listinfo/mono-devel-list</a><br><br></blockquote></div><br><br clear="all"><br>-- <br>---<br><span class="sg">Adar Wesley 
</span><br>_______________________________________________<br>Mono-devel-list mailing list<br><a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:Mono-devel-list@lists.ximian.com">Mono-devel-list@lists.ximian.com
</a><br><a onclick="return top.js.OpenExtLink(window,event,this)" href="http://lists.ximian.com/mailman/listinfo/mono-devel-list" target="_blank">http://lists.ximian.com/mailman/listinfo/mono-devel-list</a><br><br></blockquote>
</div><br>