Pad esquerda ou direita com string.format (não padleft ou padright) com string arbitrária

Posso usar String.Format () para preencher uma determinada string com caracteres arbitrário

Console.WriteLine("->{0,18}<-", "hello");
Console.WriteLine("->{0,-18}<-", "hello");

returns 

->             hello<-
->hello             <-

Agora eu quero que os espaços sejam um caractere arbitrário. O motivo pelo qual não posso fazer isso com padLeft ou padRight é porque desejo poder construir a sequência de formatação em um local / hora diferente da formatação realmente executada.

--EDITAR-
Visto que não parece haver uma solução existente para o meu problema, eu vim com isso (depois de Pense antes da sugestão de codificação)
- EDIT2 -
Eu precisava de alguns cenários mais complexos, então fui paraThink Antes da segunda sugestão de codificação

[TestMethod]
public void PaddedStringShouldPadLeft() {
    string result = string.Format(new PaddedStringFormatInfo(), "->{0:20:x} {1}<-", "Hello", "World");
    string expected = "->xxxxxxxxxxxxxxxHello World<-";
    Assert.AreEqual(result, expected);
}
[TestMethod]
public void PaddedStringShouldPadRight()
{
    string result = string.Format(new PaddedStringFormatInfo(), "->{0} {1:-20:x}<-", "Hello", "World");
    string expected = "->Hello Worldxxxxxxxxxxxxxxx<-";
    Assert.AreEqual(result, expected);
}
[TestMethod]
public void ShouldPadLeftThenRight()
{
    string result = string.Format(new PaddedStringFormatInfo(), "->{0:10:L} {1:-10:R}<-", "Hello", "World");
    string expected = "->LLLLLHello WorldRRRRR<-";
    Assert.AreEqual(result, expected);
}
[TestMethod]
public void ShouldFormatRegular()
{
    string result = string.Format(new PaddedStringFormatInfo(), "->{0} {1:-10}<-", "Hello", "World");
    string expected = string.Format("->{0} {1,-10}<-", "Hello", "World");
    Assert.AreEqual(expected, result);
}

omo o código era um pouco demais para colocar em um post, mudei-o para o github como uma essênci
http: //gist.github.com/533905#file_padded_string_format_inf

Lá as pessoas podem facilmente ramificá-lo e o que quer que seja:)

questionAnswers(4)

yourAnswerToTheQuestion