Как установить свойство, значением которого является enum
Я новичок в C# и.NET Framework. Я создаю небольшое консольное приложение для "блокировки" URL-адресов из индекса Бинга, потому что они были случайно проиндексированы. Я использую API Bing для веб-мастеров, чтобы сделать это.
Я не понимаю, как установить два свойства объекта BlockedUrl ( EntityType и RequestType). Объект BlockedUrl передается в AddBlockedUrl при отправке запроса на блокировку.
Установка значений свойств для Url, Date и DaysToExpire имеет смысл - им присваиваются значения строки, DateTime и DaysToExpire соответственно, как указывают их сигнатуры.
По подписи EntityType:
public BlockedUrl.BlockedUrlEntityType EntityType { get; set; }
Я не понимаю BlockedUrl.BlockedUrlEntityType или как я буду работать с ним. Свойство RequestType аналогично.
Мой текущий код ниже:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
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 = "Directory"; //error: "Cannot implicitly convert type 'string' to ConsoleApp1.WebmasterApi.BlockedUrl.BlockedUrlEntityType"
blockedURLObj.RequestType = "FullRemoval"; //error: "Cannot implicitly convert type 'string' to ConsoleApp1.WebmasterApi.BlockedUrl.BlockedUrlRequestType"
try
{
api.AddBlockedUrl(url, blockedURLObj);
Console.WriteLine("Success!");
Console.ReadLine();
}
catch(Exception e)
{
Console.WriteLine(e.ToString());
Console.ReadLine();
}
}
}
3 ответа
Свойство EntityType должно быть установлено с использованием значения перечисления, как указано здесь: https://msdn.microsoft.com/en-us/library/hh969362.aspx
Свойство RequestType должно быть установлено с использованием значения перечисления, как указано здесь: https://msdn.microsoft.com/en-us/library/hh969383.aspx
Например:
blockedURLObj.EntityType = BlockedUrl.BlockedUrlEntityType.Directory;
blockedURLObj.RequestType = BlockedUrl.BlockedUrlRequestType.FullRemoval;
Итак EntityType
а также RequestType
выглядеть как перечисления Вы можете установить его через blockedURLObj.RequestType = WebmasterApi.BlockedUrl.BlockedUrlRequestType.FullRemoval;
а также blockedURLObj.EntityType = WebmasterApi.BlockedUrl.BlockedUrlEntityType.Directory;
BlockedUrl.BlockedUrlEntityType
это перечисление
Так что вам нужно что-то вроде
blockedURLObj.EntityType = BlockedUrl.BlockedUrlEntityType.Directory;
blockedURLObj.RequestType = BlockedUrl.BlockedUrlRequestType.FullRemoval;
Подробнее о перечислениях здесь https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/enum