Я искал способ переместить элементы коллекции (я не определился с какой коллекцией) на Object[]
. Я пытаюсь вызвать метод путем отражения с использованием параметра вызывающего метода (коллекции) в качестве параметров вызываемого метода.Преобразование коллекции в объект []
У меня есть пара (ОБНОВЛЕНИЕ) методов, которые я хочу получить через REST api, что в свою очередь требует разного количества параметров. Поэтому я решил использовать коллекцию в качестве одного из параметров, которые требуется REST api's Update
. Но так как мне нужно вызвать метод из отражения, мне также нужно как-то разобрать/отбросить коллекцию до Object[]
.
Это то, что я прямо сейчас, и, как упоминалось я, кажется, немного застрял ...
Кроме того, имейте в виду, что это не вопрос о том, как настроить службу REST (как и мой другой), а просто как наилучшим образом отобразить коллекцию для правильных параметров вызова. Кроме того, будет с благодарностью оценена любая помощь или совет по использованию какой-либо коллекции.
public void Update(String proc, List<String> parameters)
{
var myType = typeof(JaberoDC.JaberoDC.JaberoDC);
var list = parameters;
var method = myType
.GetMethods(BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly)
.Single(mi => string.Equals(mi.Name, proc, StringComparison.OrdinalIgnoreCase));
var subject = Activator.CreateInstance(myType);
var result = method.Invoke(subject, list);
}
Вот два примера методов, которые я намерен призвать:
public bool UPDATEActivities(int? iID, int? iWorksiteID, string strActivityName, string strMethodOfWork, DateTime? dtPlannedStart, DateTime? dtActualStart, DateTime? dtPlannedFinish, DateTime? dtActualFinish, bool? blMileStoneFlag, bool? blActivityCutShort, int? iInterruptionMinutes, string strVarianceReason, string strConn, string strUserName);
public bool UPDATEWorksiteEntry(int? iID, string strJobName, string strJobID, string strSiteName, int? iCalendarWeek, int? iMainContractor, string strJobStartFrom, string strJobEndAt, string strSACStaffAssigned, string strReferenceNumber, int? iTerritory, string strFunction, string strItemNumber, string strLine, int? iWorksiteType, string strUID, string strEventNumber, string strRestrictions, string strLatitude, string strLongitude, string strPlannedWork, int? iPlannedStartMileage, int? iPlannedFinishMileage, DateTime? dtPlannedStart, DateTime? dtActualstart, DateTime? dtPlannedFinish, DateTime? dtActualFinish, int? iActualFinishMileage, int? iActualFinishYardage, int? iActualStartMileage, int? iActualStartYardage, int? iPlannedFinishYardage, int? iPlannedStartYardage, string strSACDayPhoneNo, string strSACNightPhoneNo, string strELR, string strSacPoint, bool? blTunnelSignIn, string strConn, string strUserName);
В чем вопрос и где ваша текущая проблема в размещенном коде? – Quantic
О, подумал, что это очевидно. Я в основном бредил, посмотрев на тот же код в течение нескольких часов. В принципе, я не уверен, как вызвать метод с элементами в списке (параметрах) в качестве параметров вызываемого метода. – geostocker
Также, спасибо за редактирование, сервис. :) – geostocker