Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 9109439
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 17, 20262026-06-17T03:02:51+00:00 2026-06-17T03:02:51+00:00

Let’s say I have some class – hypothetical example: public class InvalidResponseException<TReq, TResp> :

  • 0

Let’s say I have some class – hypothetical example:

public class InvalidResponseException<TReq, TResp> : Exception
{
    public TReq RequestData { get; protected set; }
    public TResp ResponseData { get; protected set; }

    public InvalidResponseException(string message, TReq requestData, TResp responseData)
        : this(message, null, requestData, responseData)
    {
    }

    public InvalidResponseException(string message, Exception innerException, TReq requestData, TResp responseData)
        : base(message, innerException)
    {
        RequestData = requestData;
        ResponseData = responseData;
    }
}

Okay, class defined… and compiles, no problem.

So lets say somewhere else in my body of code, I want to throw this exception and pass an anonymous object into my exception for one or more of the types. This should keep it generic enough that I can use it any place where I get unexpected responses from some call in my codebase:

var reqData = new { 
    Context = SomeDataContext,
    Username = SomeUserName,
    ParentID = 54,
    RequestValues = ListOfItemsToGet
}

var respData = results.ToList();

string exceptionMessage = string.Format("Invalid response data detected. Requested {0} items received {1}.", ListOfItemsToGet.Count(), results.Count());

throw new InvalidResponseException(exceptionMessage, reqData, respData);

With most anonymous calls you can use type inference so you don’t have to define your types in your method call… but this piece of code won’t compile.

If I hold my mouse over the “var” of reqData, the compiler tells me that there’s a type defined for it, albeit an odd name nobody could manually assign… so theoretically I would think the type can be inferred from that.

My initial conclusion was that you can’t pass anonymous types to generics, but then you can indeed pass anonymous objects to generics in some fashion:

var BritishExpats = from p in People
                    where p.CountryOfBirth == "United Kingdom" && p.CountryOfResidents != p.CountryOfBirth
                    select new { FirstName = p.FirstName, LastName = p.LastName }

Here “BritishPeople” is an IEnumerable<T> where T is inferred to be ‘a

… I can iterate over the resulting IEnumerable of anonymous objects and reference their public properties without any issues…

foreach (var ExPat in BritishExpats)
{
    Console.WriteLine("{0}, {1}", Expat.LastName, Expat.FirstName);
}

Of course I have to use ‘var’ in my loop because we don’t really know what type “BritishExpats” is.

So I can instantiate some types of classes using types inferred by anonymous objects, but not others…

…is there a rhyme or reason as to what can and cannot be instantiated, inferred and not inferred by anonymous objects?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-17T03:02:52+00:00Added an answer on June 17, 2026 at 3:02 am

    You can’t put together generics, anonymous types and type inference in constructors. The compiler just won’t get it. You can create a workaround through a helper class such as:

    public static class InvalidResponseExceptionHelper
    {
        public static InvalidResponseException<TReq, TResp> Create<TReq, TResp>
            (string message, TReq requestData, TResp responseData)
        {
            return new InvalidResponseException<TReq, TResp>(message, 
                requestData, responseData);
        }
    }
    

    Also, I didn’t mention it, but your InvalidResponseException class won’t compile unless heavily modified. The concept of your question went through, however.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Let me explain best with an example. Say you have node class that can
Let's say I have the following entity: public class Store { public List<Product> Products
Let's say that I have classes like this: public class Parent { public int
Let's say we have this simple class: class example { bool m_isCanceled; example() :
Let's say for a moment that I have the following module in python: class
Let's say I have some text as follows: do this, do that, then this,
Let's say I have one class User, and it has a property of type
Let's say you have a class library project that has any number of supplemental
Let's say I have an abstract parent class called shape, and that there are
Let's say I have some data in a CouchDB database. The overall size is

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.