我最近进入了 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));
}
这本身就可以工作并检索所需的实体。但是,我不能在没有错误的情况下转换返回的对象。
我想将其转换为的对象类型实现了 TableEntity-Type 并匹配表中的结果。
我知道我可以将它投射到
TableOperation.Retrieve<Type>(...)
但我真的很想为此目的使用一个函数,这需要我在调用该函数时强制转换它。
我怀疑这个问题与 Result 是 DynamicTableEntity 类型的事实有关,但我不知道为什么。
有什么办法可以优雅地解决这个问题/有没有办法建立一个参数来保存我想要的类型?(我用“Type ...”试过,但这不起作用)。