Вы, которых don’t должны вызвать основным конструктором явно, это неявно назовут, но иногда Вы должны передать параметры конструктору в этом случае, можно сделать что-то как:
using System;
namespace StackOverflow.Examples
{
class Program
{
static void Main(string[] args)
{
NewClass foo = new NewClass("parameter1","parameter2");
Console.WriteLine(foo.GetUpperParameter());
Console.ReadKey();
}
}
interface IClass
{
string GetUpperParameter();
}
class BaseClass : IClass
{
private string parameter;
public BaseClass (string someParameter)
{
this.parameter = someParameter;
}
public string GetUpperParameter()
{
return this.parameter.ToUpper();
}
}
class NewClass : IClass
{
private BaseClass internalClass;
private string newParameter;
public NewClass (string someParameter, string newParameter)
{
this.internalClass = new BaseClass(someParameter);
this.newParameter = newParameter;
}
public string GetUpperParameter()
{
return this.internalClass.GetUpperParameter() + this.newParameter.ToUpper();
}
}
}
Примечание: Если кто-то знает, что лучшее решение говорит мне.
Хм ... Я думаю, вы можете взглянуть на заголовок ETag. (в этом случае вы можете использовать метод HTTP HEAD , а не GET.) Они не говорят об этом явно, но почти наверняка Amazon использует хеш MD5 для ETag. Из документации PUT Object (не знаю, почему они просто не выходят и не говорят это):
Чтобы гарантировать, что данные не будут повреждены в сети, используйте заголовок Content-MD5. Когда вы используете заголовок Content-MD5, Amazon S3 проверяет объект на соответствие предоставленному значению MD5. Если они не совпадают, Amazon S3 возвращает ошибку. Кроме того, вы можете вычислить MD5, помещая объект в Amazon S3, и сравнить возвращенный Etag с вычисленным значением MD5.
Кроме того, методы SOAP позволяют запрашивать только метаданные, а не сами данные .