lots of us when returning one column, return an object and then have to cast that to a <T>
This fixes that to work more cleanly.
public T JcdcAdoGetOneColumn<T>(string mainSql){
object answer;
using (IAdoHelper ado = ObjectFactory.GetNamedInstance<IAdoHelper>("JCDC")) {
answer = ado.GetOneColumn<T>(mainSql, null); }
return ConvertObjectToT<T>( answer );}
private T ConvertObjectToT<T>( object answer )
{
// handle the cast for both primitive and non primitive types - EWB if ( answer is T ) {
return ( T ) answer; }
else {
try {
return ( T ) Convert.ChangeType( answer, typeof ( T ) ); }
catch ( InvalidCastException ) {
return default( T ); }
}
No comments:
Post a Comment