Я имею немного проблемы с помощью отражения и доступа к коллекции:Переосмысление, коллекции, диктаторы Oh My!
XmlElement xmlObject = Scene.CreateElement("Object");
Type Target = obj.GetType();
... xml code here
PropertyInfo[] props = Target.GetProperties(BindingFlags.Public|BindingFlags.NonPublic|BindingFlags.Instance|BindingFlags.Static);
foreach (PropertyInfo prop in props)
{
Type propType = prop.PropertyType;
if ((propType.IsPublic && propType.IsValueType && prop.CanRead && prop.CanWrite)
|| PropertyNameExceptions.Contains(prop.Name)
|| PropertyTypeExceptions.Contains(prop.PropertyType.Name))
{
object result = null;
try
{
result = prop.GetValue(obj, null);
}
catch
{
}
}
else if (isCollection(result))
{
Type pType = result.GetType();
PropertyInfo[] pTypeInfo = pType.GetProperties();
ICollection<object> rCollection = null;
try
{
rCollection = (ICollection<object>)prop.GetValue(obj, null);
}
catch
{
}
foreach (object o in rCollection)
{
ObjectToXML(o, xmlPropertyObject);
}
}
}
private bool isCollection(object o)
{
if (o.GetType().GetInterface("ICollection") != null)
{
return true;
}
return false;
}
Невозможно привести объект типа «ValueCollection [System.String, Axiom.Core.MovableObject]» к типу «System.Collections. Generic.ICollection`1 [System.Object]».
Можете ли вы немного разобраться? Чего вы пытаетесь достичь, что делает ваш код и где именно вы получаете сообщение об ошибке? Люди с радостью помогут вам здесь, но, пожалуйста, не просто сбрасывайте код и сообщение об ошибке и ожидайте, что кто-то отлаживает его для вас ... – Heinzi 2010-11-22 14:31:03