示例#1
0
 /// <summary>
 /// Returns dynamic indexer if one exists.
 /// </summary>
 /// <param name="indexer">Indexer to look up.</param>
 /// <param name="createCallback">callback function that will be called to create the dynamic indexer</param>
 /// <returns>An <see cref="IDynamicIndexer"/> for the given indexer.</returns>
 internal static IDynamicIndexer GetDynamicIndexer(PropertyInfo indexer, CreateIndexerCallback createCallback)
 {
     lock (indexerCacheLock)
     {
         IDynamicIndexer dynamicIndexer;
         if (!indexerCache.TryGetValue(indexer, out dynamicIndexer))
         {
             dynamicIndexer        = createCallback(indexer);
             indexerCache[indexer] = dynamicIndexer;
         }
         return(dynamicIndexer);
     }
 }
示例#2
0
 /// <summary>
 /// Returns dynamic indexer if one exists.
 /// </summary>
 /// <param name="indexer">Indexer to look up.</param>
 /// <param name="createCallback">callback function that will be called to create the dynamic indexer</param>
 /// <returns>An <see cref="IDynamicIndexer"/> for the given indexer.</returns>
 internal static IDynamicIndexer GetDynamicIndexer(PropertyInfo indexer, CreateIndexerCallback createCallback)
 {
     lock (indexerCache.SyncRoot)
     {
         IDynamicIndexer dynamicIndexer = (IDynamicIndexer)indexerCache[indexer];
         if (dynamicIndexer == null)
         {
             dynamicIndexer        = createCallback(indexer);
             indexerCache[indexer] = dynamicIndexer;
         }
         return(dynamicIndexer);
     }
 }
 /// <summary>
 /// Returns dynamic indexer if one exists.
 /// </summary>
 /// <param name="indexer">Indexer to look up.</param>
 /// <param name="createCallback">callback function that will be called to create the dynamic indexer</param>
 /// <returns>An <see cref="IDynamicIndexer"/> for the given indexer.</returns>
 internal static IDynamicIndexer GetDynamicIndexer(PropertyInfo indexer, CreateIndexerCallback createCallback)
 {
     lock (indexerCache.SyncRoot)
     {
         IDynamicIndexer dynamicIndexer = (IDynamicIndexer)indexerCache[indexer];
         if (dynamicIndexer == null)
         {
             dynamicIndexer = createCallback(indexer);
             indexerCache[indexer] = dynamicIndexer;
         }
         return dynamicIndexer;
     }
 }
 /// <summary>
 ///     Returns dynamic indexer if one exists.
 /// </summary>
 /// <param name="indexer">Indexer to look up.</param>
 /// <param name="createCallback">callback function that will be called to create the dynamic indexer</param>
 /// <returns>An <see cref="IDynamicIndexer" /> for the given indexer.</returns>
 internal static IDynamicIndexer GetDynamicIndexer(PropertyInfo indexer, CreateIndexerCallback createCallback)
 {
     lock (_indexerCacheLock)
     {
         IDynamicIndexer dynamicIndexer;
         if (!_indexerCache.TryGetValue(indexer, out dynamicIndexer))
         {
             dynamicIndexer = createCallback(indexer);
             _indexerCache[indexer] = dynamicIndexer;
         }
         return dynamicIndexer;
     }
 }