我应该使用string或String在c#中声明一个基本的字符串变量,这有关系吗?
我已经习惯使用一般的catch语句,并且我以一般方式处理这些异常.这是不好的做法吗?如果是这样,我如何知道可以抛出哪些特定异常以及我捕获哪些异常?
我正在使用WMI创建不同类型的DNS记录,但是SRV记录存在问题.每当我传递DomainName参数时,我都会收到"未找到"错误.域名对我来说很好看.
有没有人成功地做到了这一点?
这是我的代码:
internal static void CreateSrvRecordInDns(string Zone, string OwnerName, string DomainName, UInt16 Weight, UInt16 Priority, UInt16 Port)
{
DnsProvider dns = new DnsProvider();
ManagementClass mClass = new ManagementClass(dns.Session, new ManagementPath("MicrosoftDNS_SrvType"), null);
ManagementBaseObject inParams = mClass.GetMethodParameters("CreateInstanceFromPropertyData");
inParams["DnsServerName"] = dns.Server;
inParams["ContainerName"] = Zone;
inParams["OwnerName"] = OwnerName;
inParams["DomainName"] = DomainName; //Error occurs here
inParams["Port"] = Port;
inParams["Priority"] = Priority;
inParams["Weight"] = Weight;
mClass.InvokeMethod("CreateInstanceFromPropertyData", inParams, null);
dns.Dispose(ref inParams);
dns.Dispose(ref mClass);
}
Run Code Online (Sandbox Code Playgroud) 我正在构建一个C#Web应用程序来管理我们的DNS服务器,我正在使用WMI命名空间来处理所有事情.我唯一遇到的问题是删除DNS域名.这是我的代码:
internal static bool DeleteDomainFromDns(string DnsServerName, string ContainerName, string Name)
{
try
{
string Query = "SELECT * FROM MicrosoftDNS_Domain WHERE DnsServerName = '" + DnsServerName + "' AND ContainerName = '" + ContainerName + "' AND Name = '" + Name + "'";
ObjectQuery qry = new ObjectQuery(Query);
DnsProvider dns = new DnsProvider();
ManagementObjectSearcher s = new ManagementObjectSearcher(dns.Session, qry);
ManagementObjectCollection col = s.Get();
dns.Dispose();
foreach (ManagementObject obj in col)
{
obj.Delete(); //Exception occurs here
}
return true;
}
catch …Run Code Online (Sandbox Code Playgroud) 如果我的WCF服务中发生异常,那么将该错误传达给客户端的最佳方法是什么?
我应该在服务上登录并重新抛出一个soap例外吗?或者我应该记录它并返回用户友好的消息?
如果我的Web方法抛出异常,那么将该异常传递给客户端的最佳做法是什么?
我需要在运行时根据用户的输入构造一个LINQ To SQL语句,我似乎无法弄清楚如何动态构建WHERE子句.
我对以下内容没有任何问题:
string Filters = "<value>FOO</value>";
Where("FormattedMessage.Contains(@0)",Filters)
Run Code Online (Sandbox Code Playgroud)
但我真正需要的是使整个WHERE子句动态化.这样我就可以在运行时添加多个条件(粗略的想法):
foreach (Filter filter in filterlist)
{
whereclause = whereclause + "&& formattedmessage.contains(filter)";
}
Run Code Online (Sandbox Code Playgroud) 有人可以告诉我如何在LINQ To SQL语句中指示我希望在运行时返回哪些列?
我允许用户在复选框列表中选择项目,这些项目表示他们希望在绑定到L2S查询结果的网格视图中显示的列.
我能够动态生成WHERE子句但无法对SELECT片段执行相同的操作.这是一个示例:
var query = from log in context.Logs select log;
query = query.Where(Log => Log.Timestamp > CustomReport.ReportDateStart);
query = query.Where(Log => Log.Timestamp < CustomReport.ReportDateEnd);
query = query.Where(Log => Log.ProcessName == CustomReport.ProcessName);
foreach (Pair filter in CustomReport.ExtColsToFilter)
{
sExtFilters = "<key>" + filter.First + "</key><value>" + filter.Second + "</value>";
query = query.Where(Log => Log.FormattedMessage.Contains(sExtFilters));
}
Run Code Online (Sandbox Code Playgroud)