Если вам нужен список в вашем интерфейсе (известное количество элементов со случайным доступом), вам следует рассмотреть возможность изменения интерфейса на
public interface ISomeData
{
ICollection<string> Data { get; }
}
. Это даст вам как расширяемость, так и которые вам нужны из списка.
List<T>
не может быть легко подклассифицирован, что означает, что у вас может возникнуть проблема с возвратом этого точного типа из всех классов, которые хотят реализовать ваш интерфейс.
ICollection<T>
, с другой стороны, могут быть реализованы различными способами.
Невозможно определить информацию о доставке для заказа непосредственно во время его создания - вместо этого вам нужно использовать подход обратного вызова , о котором вы упомянули, когда Stripe отправляет детали заказа любой третьей стороне. или ваш собственный сервер, чтобы рассчитать доставку заказа.
В этом случае я бы порекомендовал не использовать объект Order здесь, а просто приступить к созданию начисления напрямую, используя stripe.charges.create
и вычислить предварительную сумму для этого начисления в вашем коде.