本文整理汇总了C#中IInvocation.GetType方法的典型用法代码示例。如果您正苦于以下问题:C# IInvocation.GetType方法的具体用法?C# IInvocation.GetType怎么用?C# IInvocation.GetType使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IInvocation
的用法示例。
在下文中一共展示了IInvocation.GetType方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: PutResponseInCache
/// <summary>
/// Puts the invocation response in the specified cache.
/// </summary>
/// <param name="invocation"></param>
/// <param name="cacheClient"></param>
/// <param name="cacheKey"></param>
/// <param name="region"></param>
/// <param name="directive"></param>
protected static void PutResponseInCache(IInvocation invocation, ICacheClient cacheClient, string cacheKey, string region, ResponseCachingDirective directive)
{
// bail if the directive does not tell us to cache anything
if (directive == null || !directive.EnableCaching || directive.TimeToLive == TimeSpan.Zero)
return;
// if we don't have a cache key, this is an error
if (cacheKey == null)
throw new InvalidOperationException(
string.Format("{0} is cacheable but the request class does not implement IDefinesCacheKey.", invocation.GetType().FullName));
// put response in cache
cacheClient.Put(cacheKey, invocation.ReturnValue, new CachePutOptions(region, directive.TimeToLive, false));
}
示例2: GetTypeWithGenericArgumentsForMethodParameters
private static Type GetTypeWithGenericArgumentsForMethodParameters(IInvocation invocation)
{
Type genericType = invocation.GetType();
if (genericType.IsGenericType) //generic method
return genericType;
//Generic class:
Type type = MockRepository.GetMockedObject(invocation.Proxy).GetDeclaringType(invocation.Method);
if (type == null)
throw new InvalidOperationException("BUG: Could not find a declaring type for method " + invocation.Method);
return type;
}
示例3: PutResponseInCache
/// <summary>
/// Puts the invocation response in the specified cache.
/// </summary>
/// <param name="invocation"></param>
/// <param name="cacheClient"></param>
/// <param name="request"> </param>
/// <param name="region"></param>
/// <param name="directive"></param>
protected static void PutResponseInCache(IInvocation invocation, object request, ICacheClient cacheClient, string region, ResponseCachingDirective directive)
{
// bail if the directive does not tell us to cache anything
if (directive == null || !directive.EnableCaching || directive.TimeToLive == TimeSpan.Zero)
return;
var strategy = ResponseDataCachingStrategy.Get(invocation.Method);
var data = strategy.GetCacheDataToPut(request, invocation.ReturnValue);
if (data == null || data.Length == 0)
{
throw new InvalidOperationException(
string.Format("{0} is cacheable but the caching strategy didn't return any data to put in the cache.", invocation.GetType().FullName));
}
foreach (var item in data)
cacheClient.Put(item.CacheKey, item.Data, new CachePutOptions(region, directive.TimeToLive, false));
}