转换TableOperation.Retrieve的结果

use*_*607 9 c# azure

我最近进入了C#/ Azure并遇到了一个我想解决的小问题.该应用程序按预期工作,但我想重构一堆类,因为我确信有一个更简单的解决方案.

我目前有一堆函数可以从Azure中检索实体,这些实体只能在检索到的类型中有所不同,但最好的是我只想要一个这样的类:

public static Object Do(string RowKey, string partitionKey, string tableName)
{
    var theTable = Connect.Initialize(tableName);
    var retrieveOperation = TableOperation.Retrieve(
                                      Base64.EncodeTo64(partitionKey),
                                      Base64.EncodeTo64(RowKey));

    var retrievedResult = theTable.Execute(retrieveOperation);

    if (retrievedResult.Result != null) {
        return retrievedResult.Result;
    }
     throw new ArgumentException(
                 String.Format("{0} not found in the Table", RowKey));
}
Run Code Online (Sandbox Code Playgroud)

这本身就可以工作并检索所需的实体.但是,我无法在没有错误的情况下强制转换返回的Object.

我想要将其强制转换为实现TableEntity-Type的Object Type,并将Result与表中的Result匹配.

我知道我可以用它来表达它

TableOperation.Retrieve<Type>(...)
Run Code Online (Sandbox Code Playgroud)

但我真的想为此目的使用一个函数,这需要我在调用函数时强制转换它.

我怀疑这个问题与结果是Type DynamicTableEntity的事实有关,但我很遗憾为什么.

有没有办法优雅地解决这个问题/是否有办法建立一个参数,保存我想要的类型作为结果?(我尝试使用"Type ..."但这不起作用).

小智 -5

您可以在 C# 中将函数与泛型类型一起使用

参考这个链接

您还可以在此处参考 stackoverflow 示例