I can't figure out why this line is throwing a null reference exception under
Mono for Android. The same code works fine for WPF, Silverlight, and Windows
Phone.
public PossessionCollection Possessions
{
get { return GetNew<PossessionCollection>("Possessions"); }
<------
}
The stack trace is showing an error before it gets into the GetNew function.
But for sake of completeness, here it is:
protected T GetNew<T>([CallerMemberNameAttribute] string propertyName)
where T : new()
{
if (propertyName == null)
throw new ArgumentNullException("propertyName",
"propertyName is null.");
if (string.IsNullOrEmpty(propertyName))
throw new ArgumentException("propertyName is empty.",
"propertyName");
Contract.EndContractBlock();
return Properties.GetNew<T>(propertyName);
}
public T GetNew<T>([CallerMemberName] string propertyName)
where T : new()
{
if (propertyName == null)
throw new ArgumentNullException("propertyName",
"propertyName is null");
if (String.IsNullOrEmpty(propertyName))
throw new ArgumentException("propertyName is empty",
"propertyName");
Contract.EndContractBlock();
var result = GetValue(propertyName);
if (result == Missing.Value)
{
result = Activator.CreateInstance<T>();
Set(result, PropertySetModes.SetAsOriginal, propertyName);
}
try
{
return (T)result;
}
catch (NullReferenceException ex)
{
//This can occur if T is a non-nullable value type and the
parent class is mal-formed.
throw new InvalidOperationException("Property " +
propertyName + " contains a null", ex);
}
}
Full source code:
http://toonrpg.codeplex.com/SourceControl/list/changesets
http://granite.codeplex.com/SourceControl/list/changesets
--
View this message in context:
http://mono-for-android.1047100.n5.nabble.com/MonoDroid-Why-would-this-line-throw-a-NullReferenceException-tp5111089p5111089.html
Sent from the Mono for Android mailing list archive at Nabble.com.
_______________________________________________
Monodroid mailing list
[email protected]
UNSUBSCRIBE INFORMATION:
http://lists.ximian.com/mailman/listinfo/monodroid