{"action":"created","issue":{"url":"https://api.github.com/repos/grpc/grpc/issues/6225","repository_url":"https://api.github.com/repos/grpc/grpc","labels_url":"https://api.github.com/repos/grpc/grpc/issues/6225/labels{/name}","comments_url":"https://api.github.com/repos/grpc/grpc/issues/6225/comments","events_url":"https://api.github.com/repos/grpc/grpc/issues/6225/events","html_url":"https://github.com/grpc/grpc/pull/6225","id":149632745,"number":6225,"title":"Fully qualify System.Threading.Tasks.Task","user":{"login":"kkm000","id":8228229,"avatar_url":"https://avatars.githubusercontent.com/u/8228229?v=3","gravatar_id":"","url":"https://api.github.com/users/kkm000","html_url":"https://github.com/kkm000","followers_url":"https://api.github.com/users/kkm000/followers","following_url":"https://api.github.com/users/kkm000/following{/other_user}","gists_url":"https://api.github.com/users/kkm000/gists{/gist_id}","starred_url":"https://api.github.com/users/kkm000/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kkm000/subscriptions","organizations_url":"https://api.github.com/users/kkm000/orgs","repos_url":"https://api.github.com/users/kkm000/repos","events_url":"https://api.github.com/users/kkm000/events{/privacy}","received_events_url":"https://api.github.com/users/kkm000/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/grpc/grpc/labels/cla:%20yes","name":"cla: yes","color":"009800"}],"state":"open","locked":false,"assignee":{"login":"jtattermusch","id":9939684,"avatar_url":"https://avatars.githubusercontent.com/u/9939684?v=3","gravatar_id":"","url":"https://api.github.com/users/jtattermusch","html_url":"https://github.com/jtattermusch","followers_url":"https://api.github.com/users/jtattermusch/followers","following_url":"https://api.github.com/users/jtattermusch/following{/other_user}","gists_url":"https://api.github.com/users/jtattermusch/gists{/gist_id}","starred_url":"https://api.github.com/users/jtattermusch/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jtattermusch/subscriptions","organizations_url":"https://api.github.com/users/jtattermusch/orgs","repos_url":"https://api.github.com/users/jtattermusch/repos","events_url":"https://api.github.com/users/jtattermusch/events{/privacy}","received_events_url":"https://api.github.com/users/jtattermusch/received_events","type":"User","site_admin":false},"milestone":null,"comments":7,"created_at":"2016-04-20T01:59:19Z","updated_at":"2016-04-20T16:01:24Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/grpc/grpc/pulls/6225","html_url":"https://github.com/grpc/grpc/pull/6225","diff_url":"https://github.com/grpc/grpc/pull/6225.diff","patch_url":"https://github.com/grpc/grpc/pull/6225.patch"},"body":"Scenario (my actual case):\r\n\r\nFirst, there is a proto package name `package SmartAction.X;` which leads to the following generated gRPC code (excerpt)\r\n```c#\r\nusing System.Threading.Tasks;\r\nnamespace SmartAction.X {\r\n  public static class MyRpcService {\r\n    // server-side interface\r\n    public interface IMyRpcService  {\r\n      Task DoThatThing( ... );\r\n    }\r\n  }\r\n}\r\n```\r\nSecond, I have a namespace `SmartAction.Task` -- not even in the same assembly I am compiling the generated .cs files with, but rather in an assemby referenced by it.\r\n\r\nThe compiler does not like the unqualified `Task` in the generated code:\r\n```\r\nerror CS0118: 'Task' is a namespace but is used like a type\r\n```"},"comment":{"url":"https://api.github.com/repos/grpc/grpc/issues/comments/212490265","html_url":"https://github.com/grpc/grpc/pull/6225#issuecomment-212490265","issue_url":"https://api.github.com/repos/grpc/grpc/issues/6225","id":212490265,"user":{"login":"jtattermusch","id":9939684,"avatar_url":"https://avatars.githubusercontent.com/u/9939684?v=3","gravatar_id":"","url":"https://api.github.com/users/jtattermusch","html_url":"https://github.com/jtattermusch","followers_url":"https://api.github.com/users/jtattermusch/followers","following_url":"https://api.github.com/users/jtattermusch/following{/other_user}","gists_url":"https://api.github.com/users/jtattermusch/gists{/gist_id}","starred_url":"https://api.github.com/users/jtattermusch/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jtattermusch/subscriptions","organizations_url":"https://api.github.com/users/jtattermusch/orgs","repos_url":"https://api.github.com/users/jtattermusch/repos","events_url":"https://api.github.com/users/jtattermusch/events{/privacy}","received_events_url":"https://api.github.com/users/jtattermusch/received_events","type":"User","site_admin":false},"created_at":"2016-04-20T16:01:24Z","updated_at":"2016-04-20T16:01:24Z","body":"@kkm000  thanks!\r\n\r\nYes, I think in general we should fully-qualify all names (if you look at code generated code for C# messages, that codegen generally does better job at doing that), but so far no one has really run into this and we had issues of higher priorities. \r\n\r\nFeel free to create a github issue for this (or even better create a PR with a fix - in which case please look at what codegen for protobuf messages is doing, I think it makes sense to stay consistent a using this aliases seems to be a good way to make the generated code smaller)."}}