如何在switch case语句中获取当前用户名

时间:2013-06-24 14:20:03

标签: c#

我想从case语句中删除硬代码值。现在我为不同的用户提供一些硬代码值,例如

 ScheduledUtility.ClsISession.OpenSession();
            switch (Convert.ToString(System.Security.Principal.WindowsIdentity.GetCurrent().Name))
            {
                case @"suniln":

                    AP.ClsBatchInvoice objBatchInvoice = new AP.ClsBatchInvoice(ScheduledUtility.ClsISession.mySession);
                    objBatchInvoice.ReportId = new Guid("6D783F3C-206C-6576-7273-696F6E3D2231");
                    objBatchInvoice.PDFFileName = "BatchInvoice";
                    objBatchInvoice.VBatchInvoice();
  break;


                case @"vijayk":

                    VendorInvoice_svc objvendor = new VendorInvoice_svc(objsession.mySession);
                    objvendor.GetVenderReports();
                    AP.Aging_svc objaging = new AP.Aging_svc(ScheduledUtility.ClsISession.mySession);
                    objaging.viewerRptAging_Load();
break;

如何编写案例值并从environment.username获取?

1 个答案:

答案 0 :(得分:2)

“case”只接受常量值,因此无法放置变量之类的动态内容。

P.S。 - 您最好更改您的方法,并将用户与预定义角色关联起来,使它们像Enum一样保持不变,并根据切换案例中的预定义角色制定决策树。