webForumDet fria alternativet

Fel med reflection

.NET

1 svar · 173 visningar · startad av Jon

Medlem sedan juli 20011 304 inlägg
Frågan#1

Bygger lite dal :)
Får ett felmeddelande när jag förenklat gör:

public static object CreateFromReader(IDataReader reader, Type objType)
		{
			object instance = Activator.CreateInstance(objType, true);
			
			PropertyInfo[] properties = objType.GetProperties(BindingFlags.Public | BindingFlags.Instance);
			
			for (int i=0; i < properties.Length; i++)
			{
				BaseFieldAttribute[] fields = (BaseFieldAttribute[])properties[i].GetCustomAttributes(typeof(BaseFieldAttribute), true);

				if (fields.Length > 0)
				{
					object value = reader[fields[0].ColumnName];
					
					if (properties[i].PropertyType.IsEnum)
					{
						value = Enum.Parse(properties[i].PropertyType, value.ToString());
					}
					
					properties[i].SetValue(instance, value, null);
				}
			}				
			
			
			return instance;
		
		}

Felmeddelandet är genereras av:
properties*.SetValue(instance, value, null);
och är:
Objekttypen kan inte konverteras till måltypen

Någon som vet lite mer ingående vad det kan bero på? Hade en teori om att jag hade en datatyp som inte matchar sql-typen men det verkar inte vara så...*

Medlem sedan juli 20011 304 inlägg
#2

Det löste sig till slut.
Problemet låg i Null-värden i databasen.

Om någon moderator känner för det så kom jag på att den här tråden kanske passar bättre i .NET
Det är ju inget som egentligen är asp.net relaterat :)

265 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
132 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
132 ms — ändringar (db)