You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在C#中设置BlockedUrl对象的枚举类型属性

解决Bing Webmaster API枚举属性赋值问题

嘿,这个问题很典型——你把枚举类型当成普通字符串来赋值啦!EntityType和RequestType都是枚举类型,不是字符串,所以不能直接用"Directory"或者"FullRemoval"这种字符串赋值,得用对应的枚举成员才行。

正确的枚举赋值方式

当你添加Bing Webmaster API的服务引用后,BlockedUrl类里已经自动生成了对应的枚举定义:

  • BlockedUrlEntityType:包含URL实体类型的可选值(比如目录、单页面等)
  • BlockedUrlRequestType:包含移除请求的类型选项(比如完全移除、部分移除等)

你需要通过BlockedUrl类来访问这些枚举的成员,替换掉出错的两行代码:

blockedURLObj.EntityType = WebmasterApi.BlockedUrl.BlockedUrlEntityType.Directory;
blockedURLObj.RequestType = WebmasterApi.BlockedUrl.BlockedUrlRequestType.FullRemoval;

修正后的完整代码

这里是替换后的可运行代码:

using System;
using System.ServiceModel;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            string url = "https://url/dir/path/";
            var api = new WebmasterApi.WebmasterApiClient();
            var blockedURLObj = new WebmasterApi.BlockedUrl();

            blockedURLObj.Url = url;
            blockedURLObj.Date = new DateTime(2018, 5, 8, 8, 00, 00);
            blockedURLObj.DaysToExpire = 90;
            // 修正枚举属性赋值
            blockedURLObj.EntityType = WebmasterApi.BlockedUrl.BlockedUrlEntityType.Directory;
            blockedURLObj.RequestType = WebmasterApi.BlockedUrl.BlockedUrlRequestType.FullRemoval;

            try
            {
                api.AddBlockedUrl(url, blockedURLObj);
                Console.WriteLine("Success!");
                Console.ReadLine();
            }
            catch(Exception e)
            {
                Console.WriteLine(e.ToString());
                Console.ReadLine();
            }
        }
    }
}

小技巧:查看枚举可选值

如果你不确定枚举有哪些可用成员,可以在Visual Studio里:

  • 把光标放在BlockedUrlEntityType上,按F12转到定义,就能看到所有枚举选项
  • 或者输入BlockedUrl.BlockedUrlEntityType.时,按Ctrl+Space触发智能提示,直接选择需要的成员

内容的提问来源于stack exchange,提问作者Anthony

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 04:26:47