{"action":"created","issue":{"url":"https://api.github.com/repos/dotnet/corefx/issues/3896","labels_url":"https://api.github.com/repos/dotnet/corefx/issues/3896/labels{/name}","comments_url":"https://api.github.com/repos/dotnet/corefx/issues/3896/comments","events_url":"https://api.github.com/repos/dotnet/corefx/issues/3896/events","html_url":"https://github.com/dotnet/corefx/pull/3896","id":111729435,"number":3896,"title":"Add mvid and metadata token API to S.R.TypeExtensions","user":{"login":"nguerrera","id":75470,"avatar_url":"https://avatars.githubusercontent.com/u/75470?v=3","gravatar_id":"","url":"https://api.github.com/users/nguerrera","html_url":"https://github.com/nguerrera","followers_url":"https://api.github.com/users/nguerrera/followers","following_url":"https://api.github.com/users/nguerrera/following{/other_user}","gists_url":"https://api.github.com/users/nguerrera/gists{/gist_id}","starred_url":"https://api.github.com/users/nguerrera/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nguerrera/subscriptions","organizations_url":"https://api.github.com/users/nguerrera/orgs","repos_url":"https://api.github.com/users/nguerrera/repos","events_url":"https://api.github.com/users/nguerrera/events{/privacy}","received_events_url":"https://api.github.com/users/nguerrera/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/dotnet/corefx/labels/2%20-%20In%20Progress","name":"2 - In Progress","color":"CCCCCC"},{"url":"https://api.github.com/repos/dotnet/corefx/labels/api%20addition","name":"api addition","color":"207de5"},{"url":"https://api.github.com/repos/dotnet/corefx/labels/cla-already-signed","name":"cla-already-signed","color":"009800"}],"state":"open","locked":false,"assignee":{"login":"nguerrera","id":75470,"avatar_url":"https://avatars.githubusercontent.com/u/75470?v=3","gravatar_id":"","url":"https://api.github.com/users/nguerrera","html_url":"https://github.com/nguerrera","followers_url":"https://api.github.com/users/nguerrera/followers","following_url":"https://api.github.com/users/nguerrera/following{/other_user}","gists_url":"https://api.github.com/users/nguerrera/gists{/gist_id}","starred_url":"https://api.github.com/users/nguerrera/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nguerrera/subscriptions","organizations_url":"https://api.github.com/users/nguerrera/orgs","repos_url":"https://api.github.com/users/nguerrera/repos","events_url":"https://api.github.com/users/nguerrera/events{/privacy}","received_events_url":"https://api.github.com/users/nguerrera/received_events","type":"User","site_admin":false},"milestone":null,"comments":6,"created_at":"2015-10-15T23:43:41Z","updated_at":"2015-10-21T20:52:53Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/dotnet/corefx/pulls/3896","html_url":"https://github.com/dotnet/corefx/pull/3896","diff_url":"https://github.com/dotnet/corefx/pull/3896.diff","patch_url":"https://github.com/dotnet/corefx/pull/3896.patch"},"body":"*NOTE*: Marking as WIP because build and tests will fail without dotnet/coreclr#1781 and #3861\r\n\r\nThis adds ModuleExtensions and MemberInfoExtensions to the the System.Reflection.TypeExtensions library that provides extension methods to bridge reflection gaps. (It already has PropertyInfoExtensions, etc. etc.)\r\n\r\n* Classic MemberInfo.MetadataToken is re-surfaced as `MemberInfo.TryGetMetadataToken(out int token)`. \r\n* Class Module.ModuleVersionId is re-surfaced as `Module.TryGetModuleVersionId(out Guid mvid)`\r\n\r\nThe TryGet pattern is used to draw attention to the fact these will not be supported everywhere (.NET Native will simply return false). \r\n\r\n**Update**: Changed to HasXxx and GetXxx from TryGet after API review feedback.\r\n\r\nOther options such as nullables or using default(T) for failure were considered, but one thing that folks do with these is compare the return value from one instance to another which would give silent false positives. I think the scenarios for using these are limited enough for the more cumbersome signature.\r\n\r\nFix #2375 \r\n\r\ncc @weshaggard @delmyers\r\n"},"comment":{"url":"https://api.github.com/repos/dotnet/corefx/issues/comments/150021007","html_url":"https://github.com/dotnet/corefx/pull/3896#issuecomment-150021007","issue_url":"https://api.github.com/repos/dotnet/corefx/issues/3896","id":150021007,"user":{"login":"nguerrera","id":75470,"avatar_url":"https://avatars.githubusercontent.com/u/75470?v=3","gravatar_id":"","url":"https://api.github.com/users/nguerrera","html_url":"https://github.com/nguerrera","followers_url":"https://api.github.com/users/nguerrera/followers","following_url":"https://api.github.com/users/nguerrera/following{/other_user}","gists_url":"https://api.github.com/users/nguerrera/gists{/gist_id}","starred_url":"https://api.github.com/users/nguerrera/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nguerrera/subscriptions","organizations_url":"https://api.github.com/users/nguerrera/orgs","repos_url":"https://api.github.com/users/nguerrera/repos","events_url":"https://api.github.com/users/nguerrera/events{/privacy}","received_events_url":"https://api.github.com/users/nguerrera/received_events","type":"User","site_admin":false},"created_at":"2015-10-21T20:52:53Z","updated_at":"2015-10-21T20:52:53Z","body":"@dotnet-bot test this please "}}