Guillaume,
There is a property in EditTools called IsTransactionLive, if it is set to true, the added feature will also be queries before commit. Here is a sample:
InMemoryFeatureLayer inMemoryFeatureLayer = new InMemoryFeatureLayer();
Feature feature = new Feature(1, 1, "id");
inMemoryFeatureLayer.Open();
inMemoryFeatureLayer.EditTools.BeginTransaction();
inMemoryFeatureLayer.EditTools.IsTransactionLive = true;
inMemoryFeatureLayer.EditTools.Add(feature);
// return the feature we just added
Feature newFeature = inMemoryFeatureLayer.QueryTools.GetFeatureById("id", ReturningColumnsType.NoColumns);
Sure you can directly use the InternalFeatures also.
InMemoryFeatureLayer inMemoryFeatureLayer = new InMemoryFeatureLayer();
inMemoryFeatureLayer.InternalFeatures.Add("key2", new Feature(1, 1, "key1"));
inMemoryFeatureLayer.BuildIndex();
// feature2.Id equals to "key1"
Feature feature2 = inMemoryFeatureLayer.InternalFeatures["key2"];
Thanks,
Ben