好的,我可以帮您翻译这段与IT技术相关的内容。这段文字提到了一个抽象基类Product,一个继承自Product的KitItem类和一个继承自KitItem的PackageKitItem类。
Product
KitItem : Product
PackageKitItem : KitItem
我已经加载了我的 KitItems,现在需要加载一组 PackageKitItems,它们实际上是 KitItems 的浅拷贝。
目前我们在 Product 构造函数中执行的是一种感觉很 hacky 的浅拷贝,如下所示:
public Product(Product product)
{
FieldInfo[] fields = product.GetType().GetFields(BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance);
// copy each value over to 'this'
foreach (FieldInfo fi in fields)
fi.SetValue(this, fi.GetValue(product));
}
我尝试在KitItem上设置一个副本,方法如下:
public KitItem ShallowCopy()
{
return (KitItem)this.MemberwiseClone();
}
并将其称为这样:
PackageKitItem tempPackKitItem = (PackageKitItem)packKitItem.ShallowCopy();
但是我得到了一个无效的转换。我正在寻找实现这一目标最好的方法。