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

  • SEARCH
  • Home
  • 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 7165101
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 28, 20262026-05-28T14:11:07+00:00 2026-05-28T14:11:07+00:00

What is best approach to create 2 identical copy from CreateBufferedCopy in WCF ?

  • 0

What is best approach to create 2 identical copy from CreateBufferedCopy in WCF ?
approach 1 or approach 2 and why?

enter code here
public object AfterReceiveRequest(ref Message request, IClientChannel channel, InstanceContext instanceContext)

{
    MessageBuffer buffer = request.CreateBufferedCopy(Int32.MaxValue);
    request = buffer.CreateMessage();

    //approach 1  
    Message message1 = buffer.CreateMessage();
    Message message2 = buffer.CreateMessage();


    //approach 2  
    Message message1 = request;
    Message message2 = request;


    foreach (MessageHeader h in message1 .Headers)
    {
        Console.WriteLine("\n{0}\n", h);
    }
    return null;
}
  • 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-05-28T14:11:08+00:00Added an answer on May 28, 2026 at 2:11 pm

    Messages in WCF are read-once. This is because they may be streamed and therefore the streamed data will not be magically resent

    To “process” a message more than once you have to copy it and the only way to copy it is to use a MessageBuffer as you have in approach 1. Processing a message may be just inspecting the body to perform data dependent routing of the content but as soon as you are going to touch the body you must copy it for the message to be successfully processed by the rest of the WCF infrastructure

    Note that if all you want to do is look at the headers you do not need to copy the message as headers are always buffered – it is only the body that is potentially streamed

    as @hyp says, approach 2 does not copy the message at all – it just gives you two references to the same message – it may be worth rereading something about reference types and value types – here’s an article that may help

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

Sidebar

Related Questions

I would like to know the best approach to create a Common Information Model
Which is the best approach to create a side Scrolling racing game? Should I
What would be the best approach to create the function getMostFrequentlyOccurringItem() below? //should return
What is the best approach to define additional data for typedef enums in C?
What is the best approach to synchronizing a DataSet with data in a database?
What would be the best approach to install a keyboard hook on Linux (X-windows)
What is the best approach to calculating the largest prime factor of a number?
What is the best approach in stripping leading and trailing spaces in C?
I wonder what the best approach is for a situation where I want to
What is the best approach to releasing a new version of a hosted web

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.