我最近进入了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 ..."但这不起作用).