Делегат:Интерфейс Делегат Кастинг
public delegate Result SalesforceAPIOnFailureEventHandler<T1, T2>(T1 sObject, T2 rawObject, string reason) where T1 : SalesforceApex.sObject;
Интерфейс:
public interface iSalesforceAPIHelperConfiguration<T1, T2> where T1 : SalesforceApex.sObject
{
SalesforceAPIOnFailureEventHandler<T1, T2> OnFailure { get; set; }
}
Класс:
public class SalesforceAPIHelperConfiguration<T1, T2> : iSalesforceAPIHelperConfiguration<T1, T2> where T1 : SalesforceApex.sObject
{
public SalesforceAPIOnFailureEventHandler<T1, T2> OnFailure { get; set; }
}
Функция:
Type typeArg = typeof(SalesforceAPIHelperConfiguration<,>);
Type[] typeArgs = { SalesforceApex.Account, typeof(object) };
Type typeClass = typeArg.MakeGenericType(typeArgs);
iSalesforceAPIHelperConfiguration<SalesforceApex.sObject, object> salesforceAPIHelperConfiguration = (iSalesforceAPIHelperConfiguration<SalesforceApex.sObject, object>)Activator.CreateInstance(typeClass);
Так что в принципе, мне нужно создать класс типа SalesforceAPIHelperConfiguration, как показано выше. Я могу создать класс, но я не могу его передать в свой интерфейс. Как я могу это сделать?
Я намерен создать классы типа SalesforceAPIHelperConfiguration и предоставить общие параметры во время выполнения. Затем мне нужно будет инициализировать обработчик событий OnFailure, который будет отображаться через интерфейс.
Какое сообщение об ошибке/исключении? –
Невозможно наложить объект типа «SalesforceAPIHelperConfiguration'2 [SalesforceApex.Account, System.Object]», чтобы напечатать «SalesforceAPIHelperConfiguration'2 [SalesforceApex.sObject, System.Object]». – JEPAAB
OK. Обратите внимание, что часть отражения здесь не уместна, она только отвлекает. –