1 |
using System; |
2 |
using System.Collections.Generic; |
3 |
using System.Linq; |
4 |
using System.Text; |
5 |
using libxmltv.Interfaces; |
6 |
|
7 |
namespace libxmltv.Core |
8 |
{ |
9 |
|
10 |
internal abstract class XMLTVBase<T> : IXMLTVBase<T> where T: class, new() |
11 |
{ |
12 |
public XMLTVBase(object instance) { this.Instance = instance; } |
13 |
private T TryConvertInstance(object instance) |
14 |
{ |
15 |
try |
16 |
{ |
17 |
T gInstance = (T)Convert.ChangeType(instance, typeof(T)); |
18 |
return gInstance; |
19 |
} |
20 |
catch (Exception ex) |
21 |
{ |
22 |
xmltv_logger.Error.WriteLine(ex.ToString()); |
23 |
return new T(); |
24 |
} |
25 |
} |
26 |
private object Instance; |
27 |
|
28 |
#region IXMLTVBase members |
29 |
public T GetInstance() { return TryConvertInstance(Instance); } |
30 |
#endregion |
31 |
|
32 |
|
33 |
} |
34 |
} |