Pares de valores clave en C # Params

Estoy buscando una manera de tener una función como:

myFunction({"Key", value}, {"Key2", value});

Estoy seguro de que hay algo con tipos anónimos que sería bastante fácil, pero no lo estoy viendo.

La única solución que se me ocurre es tener el parámetro "params KeyValuePair [] pairs", pero eso termina siendo algo similar a:

myFunction(new KeyValuePair<String, object>("Key", value), new KeyValuePair<String, object>("Key2", value));

Lo cual es, sin duda, mucho más feo.

EDITAR:

Para aclarar, estoy escribiendo una clase de "Mensaje" para pasar entre 2 sistemas diferentes. Contiene un ushort que especifica el Tipo de mensaje y un diccionario de cadena para objetar los "Datos" asociados con el mensaje. Me gustaría poder pasar toda esta información en el constructor, así que puedo hacer esto:

Agent.SendMessage (mensaje nuevo (MessageTypes.SomethingHappened, "A", x, "B", y, "C", z)); o sintaxis similar.

Respuestas a la pregunta(11)

Su respuesta a la pregunta