调用我的方法:
fpt.CouttsPositionSection.AssetClassAssets.Add(dataGenerator.GenerateFPTAssetClassAsset(fpt,*different parameter*));
我的方法:
public FPTAssetClassAsset GenerateFPTAssetClassAsset(FPT fpt, *4 parameters, with different variable names*)
{
FPTStaticDataAssetClassAssetlist = db.FPTStaticDataRatedFinancialAssetBase.OfType<FPTStaticDataAssetClassAsset>().Where(e => e.FORATExcelId == 1).ToList();
var fptdocassets = fpt.CouttsPositionSection.AssetClassAssets.Select(e => e.StaticDataAssetClassAsset).ToList();
var listTemp = FPTStaticDataAssetClassAssetlist.Where(i => !fptdocassets.Contains(i)).ToList();
FPTAssetClassAsset a = new FPTAssetClassAsset();
a.StaticDataAssetClassAsset = listTemp[random.Next(0, listTemp.Count())];
a.Currency = a.StaticDataAssetClassAsset.Currency;
a.Description = a.StaticDataAssetClassAsset.Name + " Descr";
a.Holdings.Add(GenerateFPTRatedFinancialAssetHolding());
FillCommonRateFinancialAssetData(a, fpt);
fpt.UpdateXrates(a.StaticDataAssetClassAsset.CurrencyId);
return a;
}
当我运行该方法时,将使用4个不同的参数调用4次。如果我设置了4个可选参数,那么它们都有不同的变量名。变量名称下面将介于星号之间,但我有4个,那么有没有办法让变量改变它的值或名称?
var fptdocassets = fpt.*variable of parameter passed*.AssetClassAssets
答案 0 :(得分:0)
我通过传入一个字符串来解决这个问题,并使用以下方法返回它匹配的对象。
public static object GetPropValue(object src, string propName)
{
return src.GetType().GetProperty(propName).GetValue(src, null);
}