Не удается неявно преобразовать объект типа в строку в PrivateObject в C # - PullRequest
0 голосов
/ 03 ноября 2018

Из того, что я прочитал, я могу передать объект для параметров в PrivateObject объекте. Код дает ошибку в описании.

[TestMethod]
public void TestMethod1()
{
    MessageToSend message = new MessageToSend();
    Sender sender = new Sender(null, null, null);
    var dto = new DateTimeOffset();

    PrivateObject pObj = new PrivateObject(typeof(Sender));

    Object[] args = new Object[] { "Hello", "Marc", "Perry", dto };
    string result = pObj.Invoke("ParseBody", args);
}

Error

Невозможно неявно преобразовать объект типа в строку

Метод, который он вызывает, это

private string ParseBody(string sBody, string sFirstName, string sLastName, DateTimeOffset? tSourceTimeInfo)

1 Ответ

0 голосов
/ 03 ноября 2018

Метод PrivateObject.Invoke принимает object[] аргументов и возвращает object, поэтому он может справиться с большинством вещей. Компилятор не доверяет object как string, хотя, хотя это может быть правдой во время выполнения, для компилятора это не так.

Итак ... вам нужно привести в явном виде:

string result = (string)pObj.Invoke("ParseBody", args);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...