Mapeie uma referência de objeto com HashTable
Pergunta
Gostaria de mapear uma referência para um objeto em vez do valor do objeto com um HashTable
configMapping.Add("HEADERS_PATH", Me.headers_path)
assim quando for recuperar o valor de "HEADERS_PATH" poderei atribuir um valor a Me.headers_path
algo como o operador "&" em C
Solução
Estou assumindo que Me.headers_path é um System.String.Porque System.String são imutáveis o que você deseja não pode ser alcançado.Mas você pode adicionar um nível extra de indireção para obter um comportamento semelhante.
Todos os problemas na ciência da computação podem ser resolvidos por outro nível de indireção. Mordomo Lampson
Amostra em C# (por favor, edite para VB e remova este comentário mais tarde):
public class Holder<T> {
public T Value { get; set; }
}
...
Holder<String> headerPath = new Holder<String>() { Value = "this is a test" };
configMapping.Add("HEADERS_PATH", headerPath);
...
((Holder<String>)configMapping["HEADERS_PATH"]).Value = "this is a new test";
// headerPath.Value == "this is a new test"
Outras dicas
Faça de Headers_Path ser uma propriedade (com conjunto)
Isso parece ser um dicionário, que no .NET 2.0 você poderia definir como dicionário se as referências que você deseja atualizar forem sempre strings ou dicionário (não recomendado) se você deseja obter uma referência arbitrária.
Se você precisar substituir os valores no dicionário, poderá definir sua própria classe e fornecer alguns métodos auxiliares para facilitar isso.
Não tenho muita certeza do que você quer fazer. Supondo que o Smink esteja correto, aqui está a tradução VB de seu código. Desculpe, não posso editar, acho que ainda não tenho representante suficiente.
public class Holder(Of T)
public Value as T
end class
...
Dim headerPath as new Holder(Of String)
headerPath.Value = "this is a test"
configMapping.Add("HEADERS_PATH", headerPath)
...
Directcast(configMapping["HEADERS_PATH"]),Holder(Of String)).Value = "this is a new test"
'headerPath.Value now equals "this is a new test"
@Marcj - você precisa escapar dos colchetes em sua resposta, então use <para <e> para a>. Mais uma vez, desculpe, eu não poderia apenas editar sua postagem para você.