নোট করুন যে এই উত্তরটি এমভিসি 5 / ওয়েব এপিআই 2 অবধি সত্য holds
সংক্ষিপ্ত উত্তর: এমভিসি এবং ওয়েব এপিআই ফিল্টারগুলি ক্রস সামঞ্জস্যপূর্ণ নয় এবং আপনি যদি বিশ্বব্যাপী এগুলি নিবন্ধন করতে চান তবে আপনাকে অবশ্যই প্রত্যেকের জন্য উপযুক্ত কনফিগারেশন ক্লাস ব্যবহার করতে হবে।
দীর্ঘ উত্তর: এএসপি.এনইটি এমভিসি এবং ওয়েব এপিআই উদ্দেশ্যমূলকভাবে একইভাবে কাজ করার জন্য ডিজাইন করা হয়েছে তবে এগুলি আসলে ভিন্ন ভিন্ন প্রাণী।
ওয়েব এপিআই System.Web.Http
নেমস্পেসের অধীনে বাস করে , এমভিসি System.Web.Mvc
নেমস্পেসের অধীনে থাকে । দুজনে সুখে পাশাপাশি থাকবেন, তবে একটিতে অন্যটি থাকে না এবং প্রোগ্রামিং মডেলের মিল থাকলেও অন্তর্নিহিত বাস্তবায়ন আলাদা। এমভিসি নিয়ন্ত্রক এবং ওয়েব এপিআই কন্ট্রোলাররা যেমন বিভিন্ন বেস নিয়ন্ত্রক শ্রেণীর উত্তরাধিকারী হয় (এমভিসি এর কেবল নাম Controller
এবং ওয়েব এপিআই এর নামকরণ করা হয় ApiController
) এমভিসি ফিল্টার এবং ওয়েব এপিআই ফিল্টারগুলি বিভিন্ন থেকে উত্তরাধিকারীFilterAttribute
শ্রেণীর (উভয় অংশ এই ক্ষেত্রে একই নামের কিন্তু পৃথক শ্রেণীর যা বাস তাদের নিজ নিজ নেমস্পেসে)।
HttpConfiguration
আপনি Register
যদি ওয়েবএ্যাকটিভেটরের সাথে কোনও প্রকল্পের টেম্পলেট ব্যবহার করেন তবে ওয়েব এপিআই গ্লোবাল ফিল্টারগুলি পদ্ধতি ওয়েবএপিসিফিগ.সি.সি তে আপনার কাছে উপলভ্য অবজেক্টের মাধ্যমে নিবন্ধিত রয়েছে:
public static void Register(HttpConfiguration config)
{
config.Filters.Add(new MyWebApiFilter());
}
অথবা অন্যথায় গ্লোবাল.এক্সএক্স.সি.এস.
GlobalConfiguration.Configuration.Filters.Add(new MyWebApiFilter());
এমভিসি গ্লোবাল ফিল্টারগুলি কোনও GlobalFilterCollection
অবজেক্টের মাধ্যমে নিবন্ধিত হয় , যা RegisterGlobalFilters
ওয়েবএ্যাকটিভেটর ব্যবহার করে এমন প্রকল্পগুলির জন্য ফিল্টারকনফিগ.সি.এস এর পদ্ধতির মাধ্যমে আপনার কাছে উপলব্ধ :
public class FilterConfig
{
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new MyMvcFilter());
}
}
বা ওয়েবএ্যাকটিভেটরবিহীনদের জন্য GlobalFilters.Filters
সংগ্রহের মাধ্যমে Global.asax.cs ফাইলটিতে :
GlobalFilters.Filters.Add(new MyMvcFilter());
এটি লক্ষণীয় যে উভয় ক্ষেত্রেই আপনাকে উপযুক্ত FilterAttribute
ধরণের থেকে উত্তরাধিকারী হওয়ার দরকার নেই । ওয়েব এপিআই ফিল্টারগুলির কেবলমাত্র সিস্টেম. ওয়েবে.হট্ট.পি.ফিল্টার ইন্টারফেস প্রয়োগ করা প্রয়োজন, যখন এমভিসি ফিল্টার রেজিস্ট্রেশন পরীক্ষা করে পরীক্ষা করে যাচাই করে যে আপনার শ্রেণি System.Web.Mvc
নেমস্পেসে সংজ্ঞায়িত কয়েকটি মুখ্য ফিল্টার ইন্টারফেসের উত্তরাধিকারী হয়েছে ।