private DataFormat CreateDataFormatFromMethodInfo(MethodInfo methodInfo) { DataFormat msbFunctionDataFormat = new DataFormat(); foreach (var msbFunctionParameter in methodInfo.GetParameters().Where(m => m.ParameterType != typeof(FunctionCallInfo))) { if (msbFunctionParameter.GetCustomAttributes(typeof(MsbFunctionParameter), true).FirstOrDefault() is MsbFunctionParameter functionParameterAttribute) { DataFormat dataFormatOfParameter = new DataFormat(functionParameterAttribute.Name, msbFunctionParameter.ParameterType); foreach (var subDataFormat in dataFormatOfParameter) { msbFunctionDataFormat.Add(subDataFormat.Key, subDataFormat.Value); } } } return(msbFunctionDataFormat); }